2017-11-22 13 views
-1

私はチュートリアルを見ており、チューターはGETリクエスト専用アプリケーションにXSSフィルターを入れました。XSS攻撃はGETとPOST要求でのみ起こりますか?

クロスサイトスクリプティングの私の理解はPOSTとGETを使用しています。 "ハッカー"はサーバーにスクリプトをポストし、WebアプリケーションがGET要求を出すとそのスクリプトを受け取り、スクリプトデータがページに読み込まれるとブラウザがそれを実行します。

これは、データ(スクリプト)が受信されたページを表示するすべてのユーザーに影響します。

GETリクエストのWebアプリケーションしか持っていないと、どのように脆弱になりますか?

+3

これはWebSocketを介して任意のhttp動詞で行うことができ、適切に消毒されずに別のユーザーが見られるようにデータを送信するために使用できる通信はほとんどありません。 –

答えて

2

あなたはここでいくつか誤解されているようです。 -

だけPOSTリクエストをサーバがデータを格納することがあります。

HTTP仕様では、GET要求が安全であり、冪等でないことが要求されていますが、このルールに違反するサーバーサイドコードを書くのは簡単です。 -

は、要求のみがサーバーからデータを取得することができます取得します。

ほとんどのHTTP要求には、クライアントがレンダリングする本体を含む応答を含めることができます。

ポストリダイレクト取得パターンを使用することをお勧めしますが、これは必須ではなく、常に最適な方法ではありません。 POSTリクエストには、ブラウザでレンダリングされるレスポンスがあります。

多くのXSS攻撃入力が直接対応してエコーされた反射形のものである -

は、データがは、XSSの脆弱性を引き起こすために保存する必要があります。


たとえば、Googleのような検索エンジンを実装してみましょう。

検索を実行すると、ページ上部の入力要素に検索語句が表示されるため、検索語句を変更して新しい検索を行うことができます。

<input name="q" value="<?php echo $_GET['q'];"> 

次に、検索文字列としてXSS攻撃を作成しましょう。ページにレンダリングされる

http://example.com/?q="><script>alert("XSS");</script> 

<input name="q" value=""><script>alert("XSS");</script>"> 

...と脆弱性が明らかです。

+0

私は、HTTP動詞についてのあなたの意見のほとんどを理解しており、データストレージはXSS攻撃には必要ありません。しかし、最後の部分では、「多くのXSS攻撃は、入力が応答で直接エコーされるRefelcted形式です。」あなたは精緻化できますか?それはあなた自身のほかにユーザーにどのような影響を与えますか? – Kevorkian

+0

@Kevorkian - 自分で書いたことのないリンクをクリックしたことはありませんか? – Quentin

+0

はい自分で作成していないリンクをクリックしました。それはXSSと何が関係していますか?これは、ユーザーがファンキーな見た目のパラメータでリンクをクリックした場合のユーザーの不具合です。 – Kevorkian

関連する問題