Выбор ответа Middle Сборка и публикация обновлено
Flutter: секреты в dart-define
Вопрос
Можно ли безопасно хранить секретный ключ платёжного API в --dart-define?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Нет: значение вкомпилировано в бинарник и извлекается. --dart-define просто подставляет константы при компиляции, они лежат в приложении как строки.
Варианты ответа
- Нет: значение вкомпилировано в бинарник и извлекаетсяправильный ответ
- Да:
--dart-defineшифрует значения при сборке, их нельзя прочитать - Да, если дополнительно включить
--obfuscateпри сборке релиза - Да, если читать значение только через
String.fromEnvironment
Разбор
--dart-define просто подставляет константы при компиляции, они лежат в приложении как строки. Обфускация переименовывает символы, но не шифрует строковые литералы. Любой ключ в клиенте считается публичным. Секретные операции (создание платежа, вызовы с приватным ключом) выполняет сервер, а приложение получает от него временный токен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.