1

リクエストすると/personal/faces/public/login.xhtml正常に動作しますが、リクエスト/personal/public/login.xhtmlせず/facesにページの生のソースコードを取得します。

人々がページのソースコードを見ることができないようにしたいと思います。どうすればこれを達成できますか?

4

1 に答える 1

3

これは、web.xml の構成で指定/faces/*したために発生しています。FacesServletその結果、指定された URL パターンに一致しない要求されたファイルは、GET要求を持つ通常のファイルとして提供されます。その構成を次のように変更して、JSF 関連のすべての要求が FacesServlet を通過するようにします。

   <servlet-mapping>
       <servlet-name>Faces Servlet</servlet-name>
       <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

これにより、.xhtml 拡張子を持つすべてのファイルがクライアントに戻る前に処理されます。

上記の解決策は差し迫った問題を解決するかもしれませんが、あなたが経験していることは、より深いセキュリティの問題を示しています。これは、ブラウザーを使用するすべてのユーザーが、Web アプリケーションのデプロイや、場合によってはファイル システムの他の部分からアーティファクトを要求してダウンロードできることを示しています。これは、調査する必要があるセキュリティ ホールです。オプションはアプリサーバーによって異なります

于 2013-03-15T13:08:48.257 に答える