0

Из-за ограничений конструкции проект, над которым я сейчас работаю, не позволит нам написать определенный набор параметров конфигурации в текстовом файле, таком как файлы свойств (в основном из-за ограничений безопасности).Недоступный дизайн конфигурации

Есть ли способ скрыть эти параметры конфигурации, чтобы они могли быть доступны только программистам кода. Простой Java-объект до сих пор является моей единственной идеей.

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

EDIT: Так я наткнулся Jasypt как предложено here, тем не менее, я считаю, что для моего спасения это в каком-то запутанный файл случае достаточно, так как это все, что нужно для того, чтобы пользователь не остановит фальсификацию с конфигурацией файлы.

+1

Безопасность через безвестность - это всегда плохая идея, если это то, что вы подразумеваете под «скрыть». Ваши скрытые значения __will будут раскрыты с учетом некоторого времени и усилий. Если это так, нам, вероятно, нужна дополнительная информация об архитектуре, чтобы увидеть, возможно ли что-то лучшее. Вы можете прочитать больше здесь: https://stackoverflow.com/questions/533965/why-is-security-through-obscurity-a-bad-idea – jackgu1988

+0

Ну, это своего рода защита от неясности. Итак, дело в том, что у нас есть сервер, который действует как и движок для других приложений. Чтобы развернуть приложение, нам нужно написать набор конфигураций. Затем код развертывается в военном файле на наших клиентских серверах. Ситуация заключается в том, что иногда клиенты или клиенты, окружающие наших клиентов, вмешиваются в эту открытую конфигурацию и вызывают много головных болей. Вот почему мы хотим, чтобы конфигурация была неясной после развертывания приложения. – jfzr

+0

Хорошо, я вижу. Проблема в том, что, если кто-то захочет, всегда может возникнуть смысл обфускации файла. По сути, если что-то находится в руках пользователя, его можно сломать. Нет такой вещи, как совершенная безопасность, но обфускация далека от хорошей безопасности. Я бы посоветовал вам исследовать, могут ли военные файлы быть сгенерированы на основе некоторой конфигурации (избавиться от всего несоответствующего кода), а не работать на основе некоторой конфигурации, если это имеет смысл. – jackgu1988

ответ

0

Использование environment variables:

String value = System.getEnv(myKey); 

, которые определены в ОС через export foo=bar (* Никс) или SET foo=bar (окна), или системные свойства:

String value = System.getProperty(myKey); 

, которые определены в команде Java например, java -DmyKey=myValue ...

+0

Нет действительно хорошей идеи, потому что это уменьшит мою мобильность кода, и до сих пор можно легко получить доступ к конфигурации. – jfzr