web-dev-qa-db-ja.com

XSSを防ぐために、なぜ状況依存のエンコーディングなのですか?

OWASP 推奨 状況依存のエンコーディングを実行する必要があること。状況依存のエンコーディングを行う必要がある理由と、HTMLエンコーディングだけではこれらのケースでは役に立たない理由について、強力な「コード例」をいくつか取得してください。

引用符で囲まれていない属性( 2 でも説明されています)に役立つことはわかっていますが、今のところ、全世界が引用符で囲まれた属性を使用していると仮定しますによって提供される状況依存のエンコーディング関数を使用した場合に保護されるHTMLエンコーディングが役に立たず、XSS攻撃につながる2つの例を提供するのに役立ちます(これは、唯一の状況依存エンコーディングです)私が知っている市場に存在するライブラリ)?

5
user172171

さまざまな形式のHTMLエンコーディングが役に立たないいくつかの例を使用します。これらはすべて実際に私が実際に見たケースです。私が使用します {{foo}}置換する変数。 HTMLエンコーディングには<&lt;および>&gt;。一重引用符と二重引用符の両方をエスケープすると、それらの一部はもはや悪用できなくなりますが、一部は悪用されます。

<script>var x = '{{foo}}';</script>
<a href="{{foo}}">Clicky</a>
<script>/** Comment {{foo}} */</script>
<html ng-app='myapp'>{{foo}}</html>

あなたはこれをチェックしたいかもしれません 詳細はブログ投稿

1
David