JSF(およびJSP)を使用する従来のアプリケーションをサポートしています。私は、必要に応じてバリデータとエスケープをコードに追加することで、XSSを防ぐために最善を尽くしています。私はJSFが初めてです。JSFでのXSSリフレクションの防止<f:param>
コード例(XHTMLで):
<h:form id="someForm">
<f:param name="someProperty" value="#{someBean.someProperty}"/>
</h:form>
私の問題 当社のセキュリティスキャナが、これはXSSリフレクションに対して脆弱であると言っています。私はプロパティ値にエスケープを追加したいと思います。
私の研究: JSFは一般的に自動的にすべてをエスケープすると読んでいます。これを無効にするには、falesに設定する必要があるパラメータがあります。しかし、この機能を持っていないようです。
<f:param name="someProperty" value="#{fn:escapeXml(someBean.someProperty)}"/>
をしかし、私はFNを使用する場合:escapeXmlページの読み込みに失敗したが、私は働くかもしれない示唆したコードスニペットを見つけました。これはどのようにして一般的に解決されますか?
重要なレガシーアプリケーションです。最小限の回避行動が望まれる。
前述の記事: JSF 2.0; escape="false" alternative to prevent XSS?
エラーメッセージは何ですか? –
ブラウザエラーは役に立ちません: http:// localhost:8080/someFile.jsfを開けません コンソールからこれをデバッグモードで取得できました: 原因:javax.el.ELException:Function ' fn:エスケープXml 'が見つかりません – MrZii