0

現在、私が現在取り組んでいるプロジェクトでは、プロパティファイルなどのプレーンテキストファイルに(特定のセキュリティ制約のために)特定のコンフィギュレーションパラメータを書き込むことはできません。アクセス不可能なコンフィギュレーションデザイン

この設定パラメータを隠蔽して、コードプログラマがアクセスできるようにする方法はありますか。単純なJavaオブジェクトはこれまでの私の唯一のアイデアです。

また、独自の設定を必要とする多くの「サブアプリケーション」があるため、ハードコーディング値が優れたソリューションではないことに気付く価値があります。この時点では、何らかの種類のリソースバンドルを考慮していますが、依然として元の問題があります。

EDIT:だから私はそれにもかかわらず、私はそれは私たちが、ユーザが設定をいじる停止させるために必要なすべてですので、私の場合のために難読化されたファイルのいくつかの種類でこれを保存することは十分であると考えて、提案hereとしてJasyptに出くわしましたファイル。

+1

「隠蔽」を意味する場合、あいまいさによるセキュリティは常に悪い考えです。あなたの秘密の価値は、時間と労力を費やして明らかにされます。このような場合は、アーキテクチャの詳細が必要な場合があります。あなたはここでもっと読むことができます:https://stackoverflow.com/questions/533965/why-is-security-through-obscurity-a-bad-idea – jackgu1988

+0

まあ、一種のセキュリティはあいまいです。つまり、他のアプリケーションのように動作し、動作するサーバーがあるということです。アプリケーションをデプロイするには、一連の構成を記述する必要があります。その後、コードはクライアントサーバのwarファイルにデプロイされます。クライアントを取り巻く人々がこのオープンな構成を改ざんし、頭痛を引き起こすことがあることが時々あります。だからこそ、アプリケーションが配備されると設定が不明瞭になってしまうのです。 – jfzr

+0

ありがとうございます。問題は、誰かが望むならば、難読化されたファイルを意味することは常に可能であるということです。実際、ユーザーの手に何かがあると、クラックすることがあります。完璧なセキュリティは存在しませんが、難読化は優れたセキュリティからさえ遠いです。いくつかの設定に基づいて機能するのではなく、いくつかの設定(無関係なコードをすべて取り除く)に基づいてwarファイルを生成できるかどうかを調べることをお勧めします。 – jackgu1988

答えて

0

使用environment variablesexport foo=bar(* NIX)またはSET foo=bar(窓)を介してOSで定義されている

String value = System.getEnv(myKey); 

、またはシステムプロパティ:

String value = System.getProperty(myKey); 

javaコマンドで定義されていますたとえば、java -DmyKey=myValue ...

+0

コードの移植性が低下し、構成に簡単にアクセスできるため、実際には良いアイデアはありません。 – jfzr

関連する問題