Почти все разработчики хотя бы раз использовали dotenv. Переменные среды действительно помогают нам управлять проектами, когда у нас есть более одной возможной среды, а также когда нам нужно поместить информацию в код более безопасным способом, а не жестко кодировать ее. Но всегда ли полезно использовать dotenv?
Dotenv в Интернете действительно полезен, потому что мы можем сохранить информацию в файле с именем .env, а затем использовать эту переменную в коде, если у кого-то есть доступ к коду, у этого человека не будет информации, которая была внутри dotenv, поскольку мы обычно не помещаем это код на сервере и даже не на github.
Было бы логично, если бы мы могли иметь такое же поведение на флаттере, верно? НЕПРАВИЛЬНЫЙ!
В этой статье я покажу вам уязвимость, которая может поставить под угрозу ваше приложение и сервер.
На флаттере у нас есть действительно специфическая проблема: любой, у кого есть доступ к файлам проекта, может найти этот файл .env, поскольку он будет скомпилирован с проектом, поэтому его можно будет использовать где угодно (потому что он работает иначе, чем веб-работа). ).
Позвольте мне объяснить это лучше?
используя пакет flutter_dotenv, нам нужно поместить зависимость в pubspec.yaml
затем нам нужно создать файл .env в корне проекта, а затем создать переменные
после этого в pubspec.yaml нам нужно обратиться к файлу .env как к ассету
Затем нам нужно импортировать зависимость dotenv в main.dart и загрузить файл .env.
После этого вы уже можете создать свой проект, например, для Android, и вы сможете правильно использовать dotenv. Но проблема в файлах, которые были сгенерированы при сборке проекта.
Если вы перейдете в раздел файлов и проследуете по этому пути:
build-›app-›outputs-›apk-›debug-›app-debug.apk (поскольку мы собираем приложение как отладку для Android).
затем вы можете щелкнуть правой кнопкой мыши файл и открыть в проводнике
Когда вы открываете в проводнике, вы найдете эти два файла
Затем измените расширение app-debug.apk на «.rar».
После этого вам нужно будет распаковать этот app-debug.rar
Так вы получите папку со всеми файлами
Откройте эту папку, и вы найдете папку с ресурсами
А потом флаттер_активы
Затем вы получаете файл с именем .env, вы можете открыть этот файл .env с помощью vscode или блокнота или чего угодно.
И у вас будет файл .env с вашими переменными среды.
Итак, является ли использование dotenv лучшим способом защиты информации во флаттере?