2016-05-10 8 views
2

私はDOMベースのXSS攻撃について本当に混乱しています。私はちょうど私のJSアプリでDOMに(innerHTMLで)出力されているすべてのサーバーの取得データを保護したい。 HTMLエンティティをエスケープするか、安全な属性などのために引用符をエスケープします。次に、私はdomベースのXSSについて読んで、HTMlをエスケープするだけではどう違うのか分かりません。この表で https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#XSS_Prevention_Rules_SummaryJSアプリケーションのDOMベースのXSS保護

、あなたは、DOMベースのXSSの例を参照することができます

<script>document.write("UNTRUSTED INPUT: " + document.location.hash);<script/> 

との記事がこの資料に記載されている技術を適用する必要があることを示唆:https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet

はなら、私を修正します私は間違っていますが、この例は単純なhtmlエンティティのエスケープを使用して完全に保護する必要があります。

<script>document.write("UNTRUSTED INPUT: " + escapeHTML(document.location.hash));<script/> 

ここで、escapeHTMLはhtmlエンティティをエンコードします。

そして、2番目の記事が何であるか分かりませんが、<%= =>表記は何ですか? (Googleには不可能)サーバー側の言語ですか?それはJSのサーバー側をエスケープする意味があるので、この記事ではそれは何ですかjavascriptサーバー側を生成する人のためのヒントですか?この記事は静的なファイルの通常のJSのためのものであれば、まったく意味がありません。

更新:私は、HTMLをエスケープすることが、innerHTMLメソッドを使用してDOMを動的に挿入するために必要なことを知りたいだけです。もちろん、私はリンクされた最初の記事で指定されているように、URLやスタイルに特別な注意が必要であることを認識しています。

+0

質問全体の回答はわかりませんが、<%= =>はASP – Mazodude

+0

のように見えますが、HTMLを提供しているようにうまくいくはずです。 DOMベースの攻撃は、コアのDOM攻撃ベクトルと関係があります。だから、データを送り返しているときには、あなただけが気にする必要があります。 –

答えて

1

攻撃は、サーバーまたはDOMから発生する可能性があります。格納されたXSS攻撃とXSS攻撃はサーバから来て、悪意のあるコードをデータベースに取得した場合や、後で実行される場所を切断した場合に発生します。簡単に言えば、悪いコードがサーバーに到達するのを防ぐ方法は、データ転送方法(入力、ボタン、フォーム、URL、クエリ文字列)を保護することです。 Stored and Reflected XSS Attacks

DOM based XSS攻撃がより広くなります。 DOMが組み込んだ唯一のセキュリティは、同じOrigin-Policyです。コードが同じドメインからトリガされた場合、「安全でなければならない」と言われています。その問題は、HTMLの制約が非常に緩やかであり、相互に影響を及ぼし合うことができる1つのページで受け入れられるコンテキストが非常に多いことです。スクリプトタグでJavaScriptを記述し、入力フィールドにペースしてトリガーすることができます。 JavaScriptは、クリックイベントをリダイレクトするために使用できるページURLコンテキストにアクセスできます。それはほんの数です。

サイトサーバーサイドとDOMを本当に保護したい場合は、可能であればCSP (Content Security Policy)を調べます。それは余分な仕事ですが、本当に物事を縛られたければ、それはそれに値するでしょう。

最後にについては、displaying information from ASP.NETで使用されています。

+0

ありがとうございます。私は私の質問を更新しました。 –

+0

「<%= %>」は.NETだけでなく、多くの異なる言語に共通しています。もう1つの例はunderscore.jsです。私はいくつかのJavaフレームワークでもその構文を使用していると思います。 – Erlend

関連する問題