2017-01-20 6 views
1

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?

+0

エラーメッセージは何ですか? –

+0

ブラウザエラーは役に立ちません: http:// localhost:8080/someFile.jsfを開けません コンソールからこれをデバッグモードで取得できました: 原因:javax.el.E​​LException:Function ' fn:エスケープXml 'が見つかりません – MrZii

答えて

0

まあ、これは恥ずかしいです。私はこれを追加しましたFN =「http://java.sun.com/jsp/jstl/functions」

、今で動作するように表示されます。 のxmlns: は私のXHTMLファイルのための1つは、必要なインポートがありませんでしたが判明します!

関連する問題