2011-08-10 18 views
4

私は永続性と非永続性について熟知していますXSS。 また、あるWebサイトのページからのリクエストが別のWebサイトのサーバーに移動するのを防ぐ/制限することについては、Same origin policyについても知っています。これにより、同じ発信元ポリシーが少なくとも永続的なXSS攻撃を阻止できると思いました(永続型攻撃では、悪意のあるコードの原点は盗まれた個人情報と同じになるため)。 私の理解は正しいですか? SOPを使用してこれらの攻撃を停止/縮小できますか?クロスサイトスクリプティング攻撃と同じ発信元ポリシー

EDIT:ブラウザサイドで2つのスクリプトの間でメソッドを呼び出すことと、別のWebサイトでHTTP POSTなどのメソッドを呼び出すことの間で混乱していました。答えてくれてありがとう。

今私は別の質問がありますが、SOPは防ぐことができませんCross-site request forgery? wikipediaで与えられた例は、BobがChatフォーラムでMalloryによって作成された悪意のある画像タグにアクセスしたことについて語っています。しかし、SOPルールに従って、悪意のあるスクリプトは銀行のクッキーにアクセスできないはずです。私はここに何かを逃していますか

+0

ウェブサイトBにGETとPOSTリクエストを送信するために、ウェブサイトAを防ぐことはできませんので、SOPは、ほとんどの場合のためにそれを防ぐことはできません。ブラウザには常に適用されるため、残念ながらCSRFは停止しません。将来、CSPのようなものがこれらの攻撃を止めることができるかもしれませんが、現在はトークンベースのアプローチがCSRFを避ける最善の方法です。 – Erlend

答えて

6

通常、

非永続的または反射XSS攻撃は、適切なサニタイズを行わずにページコンテンツとしてエコーバックされた入力を悪用します。注入されたスクリプトは、両方のケースで悪用されたドメインから来ているように見えます。あなたがPHPでこれを行う場合

例えば:echo $_GET['param']?param=<script>alert('got you!');</script> を含む誰かにページへのリンクを送信それが非永続XSS攻撃で、かつ同一生成元ポリシーは、それとは何の関係もありません。

同じ起源は、スクリプトを直接挿入したり、他のドメインのDOMを変更することができないことを意味します。そのため、まずXSSの脆弱性を見つけ出す必要があります。

+0

答えをありがとう。私の新しい編集についてコメントがありますか? – Methos

+0

SOPは、images、style、iframe、script要素のsrcやフォームのターゲットなどには適用されません。ただし、XmlHttpRequestに適用されるため、CSRFのこの特定の攻撃ベクトルは防御されます。 https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheetも参照してください。 – jakber

0

SOPは、通常、XSSまたはCSRFを防止できません。

XSSについては、jakberの答えが既に説明されています。この脆弱性を「クロスサイト」と呼ぶ理由は、攻撃者が一般的に攻撃者によって制御される別のWebサイトから悪意のあるjavascriptをロードするターゲットページにコード(たとえば<script src="...">)を注入できるからです。他のウェブサイトからJavascriptをロードすることは、SOPによって拒否されません。 CSRFのために

SOPはSOPが起動または停止ものではありません

関連する問題