flutter - Безопасно ли сохранять конфигурационный файл Json в качестве ресурсов во флаттере? - PullRequest
0 голосов
/ 09 мая 2020

Я работаю над приложением и хочу знать, как лучше всего сохранить файл конфигурации. Теперь я планирую использовать файл JSON и сохранить его как активы. Тем не менее, файл важен , к нему не должны иметь доступ другие.

1 Ответ

0 голосов
/ 09 мая 2020

Я эксперт в области CyberSecurity, и у меня есть некоторые соображения. Во-первых, вы не можете полностью предотвратить доступ злоумышленника к конфиденциальной информации, все, что вы можете сделать, - это затруднить его, часто до такой степени, что для достижения успеха требуются годы, но нет ничего на 100% безопасного от обратного инженерное дело.

Второе соображение: есть только один способ предоставить злоумышленнику данные из лотка, и его можно считать наиболее уязвимым способом сохранения конфиденциальных данных: сохранить в активы в файле json . Кажется иронией c, что вы упомянули об этом.

Json - это самый читаемый человеком язык, который существует (и невозможно потерять эту позицию, прочитайте файл в кавычках и его значение с помощью: it интуитивно понятен даже для тех, кто не занимается программированием), если он находится в папке с активами, это будет файл, полностью незащищенный после компиляции, который можно извлечь без декомпиляции apk, просто используя любой файловый ролик. Практически это означает: посмотрите и прочтите мой файл, я вас умоляю.

Конфиденциальные данные должны храниться в android хранилища ключей и iOS в связке ключей. Существует плагин Flutter, который абстрагирует это за вас (https://pub.dev/packages/flutter_secure_storage).

Как специалист по CyberSecurity, я должен сказать вам, что даже при таком хранении вы будете на 100% Безопасный, по сути, безопасности такого уровня не существует. Но то, что я рекомендую, по крайней мере, потребует некоторой работы и устранит 99% людей, которые хотят сломать ваше приложение, это:

преобразовать json в строку и сохранить его в зашифрованном FSS, без простого текст. Когда вам понадобится файл, возьмите сгенерированную строку, расшифруйте ее и снова превратите в json. Помня, что ключ шифрования также должен быть сохранен, или, если вы собираетесь вставить его в свой код, не делайте этого с обычным текстом, заранее зашифруйте его или, по крайней мере, конвертируйте в base64 (это не безопасность, это будет только усложняет буквальный поиск), и, наконец, не используйте такие слова, как «токен», «безопасный», «секретный» в качестве ключа, потому что это первые слова, по которым выполняется поиск. Протестируйте что-нибудь совершенно необычное, на днях я использовал магнолию (а здесь я считаю, потому что изменился).

...