@an_del

Как защитить CSV или JSON базу данных в мобильном приложении?

Пишу мобильное приложение, для его работы необходима база данных (собираю вручную, очень долго, поэтому не хочется чтобы какой нибудь Вася Пупкин однажды заглянул в apk и все мои труды забрал например к себе в проект).
У меня было 2 варианта:
1. Шифрование (Но как я понял бесплатные варианты так себе шифруют и могут быть в лёгкую расшифрованы)
2. Хранить на сервере (Но в этом случае нужен мощный сервер который выдержит нагрузку)
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 3
@rPman
100% защиты не будет, в конечном счете все упрется в стоимость защиты и атаки, и соответственно смысла это делать.

Про размещение базы на сервере:
* так ли твое приложение будет популярно, что ты беспокоишься о нагрузке?
* можно использовать на сервере только часть базы (выбрать ту что больше жалко) а часть не самую важную, но по возможности объемную, дублировать в виде кеша на клиенте
* есть интересный вариант, когда сервер возвращает только идентификаторы (само собой на сервере база целиком), а локально хранятся несвязные данные (можно даже строки раскидать по частям), этот вариант имеет смысл если нужно сэкономить на сетевом трафике (в т.ч. для пользователей), не подходит если эти данные часто меняются (чтобы не рассылать обновления всем пользователям) а так измененные данные можно так же с сервера брать.
* ограничивай количество запросов от пользователя, иначе ушлый атакующий просто спарсит большой серией удачных запросов либо саму базу либо результаты ее работы, просто используя данные, выводимые на экран приложением (что то типа автокликера)
Ответ написан
2ord
@2ord
Данные принято хранить в СУБД, а не файликах. Может работать on-prem или на облачном хостинге. СУБД может быть реляционной (язык запросов SQL), ключ-значение, колоночная и т.д
Как правило, мощный сервер не нужен. Даже если данных сотни ГБ. Но это зависит от того правильно ли спроектирована БД и типа самых популярных запросов к ней.
Как правило, мобильные приложения не работают напрямую с СУБД и используется многоуровневая архитектура. Безопасность данных обеспечивается комплексом мер безопасности для мобильного приложения и северной части (читай про OWASP). Само по себе шифрование данных возможно, но этим заморачиваются обычно лишь особо параноидальные организации. Это требует знаний в разработке бэкэнда. Обычно используется веб-фреймворк и стек технологий типа LEMP или альтернативы.

Есть вариант куда проще - можно рассматривать как промежуточный - миграция файлов в SQLITE (работать с ним из приложения при помощи SQL). Но я не знаю можно ли скачивать файл БД при установке на мобильное устройство. Иначе придётся запаковывать его в приложение. По идее можно, раз игры скачивают свой контент.

Ещё есть вариант с Firebase. Кто знает, пусть напишет.
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
Никак. Технические решения не работают.
Ваша база из открытых источников ?
Думаю даже юридическая защита тут не поможет.

Только постоянная актуализация.
Занятие лидирущих позиций по ASO в своей нише.
Продвижение.
Цены на грани рентабельности.

В результате конкурентам, чтобы сбить лидера потребуется раз в 10 больше затрат по деньгам.
Им останется только вариант выпустить полностью бесплатное приложение. лишь бы только подгадить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы