2017-01-02 7 views
0

У меня есть приложение, которое использует данные .properties, содержащие пароль из БД, это приложение будет использоваться моим клиентом, но я не хочу предоставлять ему какой-либо доступ к этим свойствам данных, даже если мы смотрим в .jar. Я думал использовать zip4j, но есть ли другое лучшее решение для этого, потому что, когда я разархивирую его, .properties будет распаковаться где-то, давая клиенту доступ к нему, не так ли?Использовать данные файла, не давая кому-либо разрешения

+0

ну, если вы поместите его в файл jar, он будет в любом случае доступен. –

ответ

3

Этого не может быть сделано. Просто забудьте об этой идее и подумайте о своей системе. Вы не можете предоставить доступ для чтения, не предоставляя доступ для чтения одновременно.

Это мокрой мечтой юридических департаментов в медиаиндустрии. Они вкладывают кучу денег в решение этой неразрешимой проблемы с DRM, которая никогда не работает, но раздражает всех.

Вы можете сделать его более раздражающим для извлечения данных - используя различные методы обфускации - но это все.

Одна из этих идей - кодировать пассив в библиотеке C++ и связывать его через JNI. Тогда пользователь не может извлечь его без разборки двоичного файла, но в любом случае сможет сделать дамп памяти во время выполнения.

Вы можете прочитать пароль с центрального сервера во время выполнения. Вы можете использовать для этого одноразовые пароли. Опять же, это бесполезно, если у пользователя есть скромные технические навыки, так как вы все равно можете запросить сервер для пароля, используя завиток или какой-то простой скрипт.

Вы можете использовать токен доступа к оборудованию, который позволит подключиться к базе данных (смарт-карта или что-то еще). Это была довольно популярная техника в 90-х годах.

Все, что вы можете сделать, это добавить некоторый уровень раздражения, который остановит нетехнического человека. С достаточным количеством денег вы можете построить достойный DRM, который ненадолго остановит технически подкованных людей, но я серьезно сомневаюсь, что это стоит денег.

Если доступ к базе данных настолько ценен, что вы не можете дать пользователю доступ к нему, но он ему нужен, ваш дизайн сломан.