Я написал простенький лаунчер на javaFX который коннектится к бд, используя информацию из properties файла находящегося в ресурсах проекта:
Лаунчер берёт хост,имя и пароль юзера, коннектится к бд, получает ссылку на картинку которую затем скачивает.
Меня беспокоит абстрактный злоумышленник который по одному ему известной причине может разобрать мой лаунчер и достать данные properties файлов.
Приложение ученическое и вопросы таковы:
-Есть ли такой подход при котором мне вообще не нужно будет хранить подобные данные в своём приложении, но чтобы оно при этом работало? Если есть, скажите пожалуйста куда гуглить.
-Как я могу защитить свои файлы от потенциального взломщика?
Бд к которой идёт коннект я не админю и в теории я не могу создавать на стороне сервера какие - то правила для своего приложения.
Заранее благодарю
Способов надежно защитить данные на стороне клиента нет, клиент всегда считается скомпрометированным.
Можно немного усложнить жизнь потенциальным взломщикам, используя обфускацию(proguard например), а файлы ресурсов, например, шифровать, и расшифровывать только в рантайме ключом, полученным, с сервера, или спрятанным где-нибудь глубоко в коде. Но и в таком случае знающий человек рано или поздно поймет в чем дело и все равно получит доступ к файлам.
Единственный надежный вариант - добавлять сервер, который будет авторизовать клиента и выдавать ему только те данные, к которым у него есть доступ.
Защитить файл невозможно. Можно его не использовать. Для этого с БД должно не приложение работать, но сервер, к коему приложение будет обращаться по API.
В приложении должна быть возможность дёргать методы API для регистрации и авторизации юзера. Сервер будет назначать юзеру права на вызовы своих методов. Так вы будите полностью контролировать что может юзер сделать с БД.
Но так юзер, конечно, может взломать ваш сервер и вытащить пароль к БД с него. Так что вообще совсем защитить БД не получится никак)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть 4 айтема RecyclerView клик реализовал по LinerLayout, если юзер нажмет на один из айтемов, нужно чтобы в течение 3 секунд клики у всех айтемов отключились,...