セッショントークンがhttponlyが設定されたCookieに保存されている場合、XSSの脆弱性により悪意のあるユーザーがユーザーのセッショントークンを盗む方法はありますか?
一般に、トークンにhttponly
が設定されている場合、XSS攻撃はセッショントークンを取得できません。ブラウザやプラグインの過去のバグ、サーバーの設定ミス(例:HTTP TRACEへの応答)のモジュロ。
しかし、それはあまり価値がありません。 XSSがトークンを取得しないようにすることはできますが、XSS攻撃はユーザーのマシン上のセッションを完全に制御できます。これにより、ユーザーはサイト上でほとんど何でもすることが強制されたり、サイトへのユーザーのインターフェースが改ざんされたりする可能性があります(たとえば、サイトの認証情報をフィッシングするため)。攻撃者が侵害されたセッションで達成できることの例については BeEF を参照してください。
httponly
を設定しないことで、ユーザーがブラウザウィンドウを開いたままにしておく時間に制限されるのではなく、自分のマシンから自分の時間にセッションにアクセスできるため、攻撃者の生活が少し楽になります。可能であればhttponly
を使用する価値はありますが、XSSの影響から魔法のようにあなたを保護しない穏やかな緩和策です。
正しく実行された場合、HttpOnlyは攻撃者がCookieを盗むのを防ぎます。ただし、被害者のユーザーになりすまして任意のWebリクエストを実行し、応答を抽出することはできます。たとえば、BEEFにはこれを行うためのモジュールがあります。
言い換えれば、HttpOnlyは攻撃者にとって事態を難しくしますが、熟練した攻撃者を阻止しません。
また、他の人が指摘したように、攻撃者がHttpOnly Cookieを抽出することを可能にするさまざまな欠陥があります。
結論-すべてのXSSは潜在的に深刻であり、XSSの欠陥を修正する必要があります。
はい。主に。ヘッダーは、スクリプトがセッションをハイジャックする簡単な方法である「Cookieの盗用」を防ぎます。
また、ブラウザーがHTTPonlyヘッダーをサポートしているかどうかにも依存します。そうでない場合は無視され、作成される機能は発生しません。
これは、ヘッダーをもう少し説明するリンクです。また、それをサポートするブラウザーを示す表も含まれています。 https://www.owasp.org/index.php/HttpOnly