0

この件でJSTLを使用することについて、この投稿と他の投稿を赤字にしました。

私の問題は少し異なります。私たちの機能の1つは、ユーザーがコメントにハッシュタグを書くことを可能にします。

コメントがリストされるたびに、サーバースクリプトはすべてをに変え#fooHastagます<a href='tag?fooHashtag'>#fooHashtag</a>

次に、すべてのコメントがJSTLを使用してGUIでリッスンされます。

<c:forEach items="${comments}" var = "comment">
    ${fn:escapeXml(comment)}
</c:forEach

予想どおり、このコードはサーバー上に構築されたハッシュリンクもエスケープします。を削除するfn:escapeXmlと、アプリケーションは安全ではなくなります。

これの修正について何か考えがありますか?escapeXml(xssフィルターを手動で作成する以外)ハッシュタグを変換する前に、サーバー上でJSTLを使用できるようになれば素晴らしいと思います。それを行う方法はありますか?

ありがとうございました!

4

1 に答える 1

1

それを解決するいくつかの方法:

  • タグを追加する前にエスケープします。escapeXml の代わりに適切な html エンコーダーを使用します (HTML は XML でさえありません)。

  • タグを追加してから、owasp アンチサミーを実行します。エスケープなし

  • リンク機能へのタグを JavaScript に移動します。

于 2012-09-05T04:51:43.537 に答える