2017-05-16 18 views
0

は、私は、フォーム例外がスローされJSPスクリプトレット例外でXSSを防止するにはどうすればよいですか?

<% 
String imageId = request.getParameter("imageId"); 
if(getImageById == null){ 
    throw new JspException("No data found for " + imageId); 
} 
%> 

のスクリプトレットとJSPページを持って、リクエストパラメータ「IMAGEIDは、」XSS攻撃が可能、印刷されています。

これを防ぐために、入力を除外するにはどうすればよいですか?

答えて

2

どのイメージIDが必要かによって異なります。

数字の場合は、最初に解析してみてください。 GUIDのような文字列データが必要な場合は、それが仕様に準拠していることを確認してください。

どちらの場合でも、Idが有効でない場合は戻しません。データが見つからないと言うだけです。

IDは、任意の文字のランダムなセットをすることができた場合は、JSP側でJSTLを使用

<c:out value="${myId}"/> 

または

escapeXml(myId) 

<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="t" %> 

からこれが役立つことがあります。 How can I escape special HTML characters in JSP?

またはこの:Recommended method for escaping HTML in Java

ここでは、OWASPによって消毒剤である:他の地域でescapeXml()が、私はスクリプトレットの中にあるもののいずれかを使用することはできません。https://github.com/owasp/java-html-sanitizer

+0

私はタグおよびfnを使用してきました、私はできますか? – PiotrChernin

+1

私はちょうどJavaのための別のSOの質問を追加しました。あなたはIDを表示する必要がありますか? IDのフォーマットに関する情報はもうありますか? – Allan

+0

これは私のコードではありません。私はIDのいくつかの例を調べることができますが、私は誰でもそれを書いた人が意図したすべての有効な形式を考慮に入れることはできません。私はまたはfn:escapeXmlのような単純なものを期待していましたが、純粋なJavaのためには存在します。可能な限り機能する形式に近いままでコードを修正する必要があります。これはIDを表示することを意味します。 – PiotrChernin

関連する問題