現在の Java Web サイトで最大限のセキュリティを確保する方法についてアドバイスが必要です。
Centos6 サーバーのポート 8080 にある tomcat-7 の 1 つのインスタンスの下に、これらの両方のアプリケーションをデプロイしました。
.war ファイル
- website.war (コンテキスト名はROOT)
- processor.war (コンテキスト名はプロセッサ)
バッチジャー
- バッチ.jar
セキュリティ要件
- website.war は一般にアクセス可能です。セキュリティは必要ありません
- processor.war は、website.war から HTTP 要求を取得し、Web サイトがユーザーに表示する結果を返します。
- batch.jar はサーバーのバックグラウンドで実行されるため、安全なサーバー以外にセキュリティは必要ないと思います。
現在、次のものを保護するために、processor.war の web.xml に追加しました。
- tomcat-users.xml ファイルで「user」ロールが設定されたユーザーとパスを持つリクエストのみが /process URL にアクセスできます。
- tomcat-users.xml ファイルで「admin」ロールが設定されたユーザーとパスを持つリクエストのみが /admin URL にアクセスできます。
これは、processor.war の web.xml ファイルの構成です。
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Public</web-resource-name>
<url-pattern>/processor/process*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
これは十分に安全ですか?攻撃者がリクエストを偽装し、HTTP リクエストでパスワードを読み取ることができると読みました。私は本当に processor.war を保護したいので、
- リクエストを processor.war localhost:8080/processor/process に投稿できるのは、website.war (localhost:8080) のみです。
- また、管理ユーザーのみが localhost:8080/processor/admin ページにアクセスできます。
より多くのセキュリティが必要であると誰かが教えてもらえますか? はいの場合、セキュリティを確保するために何ができますか?