2017-01-03 5 views
0

Поскольку мне не нужна большая инфраструктура, например, Glasfish, я создал автономное приложение с JPA .. Это означает, что у клиента будут все файлы, включая persistence.xml.Любой способ шифрования persistence.xml для автономного приложения?

Любой способ зашифровать это? Так как он выдаст детали mysql.

спасибо!

ответ

5

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

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

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

1

Вы не можете зашифровать файл persistence.xml. Но вместо того, чтобы свойства в persistence.xml вы можете передать карту при создании EntityManger

EntityManager createEntityManager(SynchronizationType synchronizationType, Map map) 

http://docs.oracle.com/javaee/7/api/javax/persistence/EntityManagerFactory.html#createEntityManager-javax.persistence.SynchronizationType-java.util.Map-

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

Смежные вопросы