web-dev-qa-db-ja.com

「同一生成元ポリシー」とXSS

私はSOPを理解しています。「同じオリジンポリシー」は、オリジンxのスクリプトコードがオリジンyのデータにアクセスするのを防ぐことになっています。 Originはプロトコル、ドメイン、ポートのタプルであると言われています。

これ は、SOPが何であり、なぜそれが重要であるかを説明しますが、XSSを防ぐのにどのように役立つかはそれほどではありません。

攻撃者はマリシオスリンクを作成する可能性がありますhttp://www.store.com/sale/products?id=<script>script stuff..</script>そしてユーザーにそれをクリックさせる。脆弱なサイトはコードをクライアントのブラウザに反映します。私がこの権利を理解している場合、SOPは、jsコードが別のOrigin(たとえば、facebook.com)に属するクライアントブラウザのデータにアクセスし、セッションCookieを盗むのを防ぎます。

さて、保存されたxss攻撃のように、maliciosコードがfacebook.comから来ていた場合、SOPが適用されますか?

TL; DR:私の質問は、「同じオリジンポリシー」がどのようにXSS攻撃を防止するかであり、xssのタイプがある場合、それは防止しません。また、SOPはどのようにCookieセキュリティに変換されますか?特に、攻撃者がユーザーのセッションCookieを盗み、それを使用してユーザーに代わってアクションを実行する場合。

2
monolith

「同じ生成元ポリシー」はXSS攻撃をどのように防止しますか

そうではありません。

SOPは、XSSの脆弱性がない場合に機能します。

evil.comは、認証でデータを読み取ることができません。例:facebook.com。これは、facebook.comは、SOPのバイパスを可能にする独自の脆弱性を導入していません。

そして、そこがXSSの出番です。これにより、SOPのbypassingが本質的に可能になります。これは、攻撃者がアプリケーションと同じOriginからスクリプトを実行できるためです(例:facebook.com)。

3
tim