2016-10-21 8 views
1

私のアプリケーションでは、アプリケーションで使用される文字列定数に対応するApplicationConstants.javaクラスがあります。 私は 'public static final String PASSWORD = "パスワード"を定数の1つとして持っています。ソナーは以下のようにエラーを投げます。同じことを処理する方法があれば教えてください。ソナー「資格情報をハードコードするべきではありません」エラー

ソナーエラー: 説明譲受人リソース新しい問題 資格情報をハードコードするべきではありません:このハードコードされたパスワードを削除してください。 EnrollmentConstant.java false

答えて

0

プロパティファイルに展開する必要があります。 Hereあなたはそれを行う方法を読むことができます

システム・プロパティとしてアプリケーション・サーバーに配置し、それが本番マシン(たとえばWildflyサーバー)に存在することを期待してから、System.getProperty(key)を使用して読み取ります。これは展開を少し複雑にしますが、プロダクションパスワードはプロジェクトには存在しません。

Springを使用する場合は、@Value注釈を使用してbeanに値をロードできます。 Hereあなたはこれを行う方法を読むことができます。

1

パスワードを設定に移動する必要があります。

0

暗号化された設定ファイルまたはデータベースにコード外の資格情報を保存する必要があります.Soanrエンドでは、ハードコードされたパスワード/ユーザー名のフラグがあります。プロパティファイルやその他の設定ファイルに保存してください。コンパイルされたアプリケーションから文字列を抽出するのが容易であるため、セキュリティ上の理由からパスワードをStringオブジェクトに保存することは推奨されていません。

0

私にとって、これをしない主な理由はこのシナリオです。パスワードが変更されます。これでコードを変更し、再コンパイルして再デプロイする必要があります。あなたが設定ファイル(またはコード内に直接持っていない他の方法)を持っていれば、そのすべてを行う必要はありません。最悪の場合、サーバーをバウンスする必要があります。最適なケース - 設定ファイルがいつ変更されたかをあなたのコードが知ることができ、その変更をすぐに拾うことができます。

関連する問題