私のサイトでユーザーが自分の送信データのみを表示でき、他のユーザーが送信したデータを表示できない場合(つまり、一般的な「投稿」などはありません)、実際に私のサイトにXSSリスクがありますか?
私はまだXSSソリューション(httmlspecialchars()など)に取り組んでいますが、攻撃者が自分のXSS攻撃を見て何かを得ることができるかどうか知りたいですか?
攻撃者は、自分自身でクロスサイトスクリプティング技術を使用して何も得ることができません。クロスサイトスクリプティングの目的は、フィッシングやCookieの読み取りなど、悪意のある方法でユーザーに表示されるページ要素を操作することです。つまり、攻撃はクライアント側のエンティティにのみ影響を与える可能性があります。
ただし、「ユーザーが自分のデータを見ているだけ」とはどういう意味かを覚えておくことが重要です。
ユーザーが自分だけが表示できるプライベートプロファイルを持つことができるWebサイトがあるとします。ページには、ユーザーがWebサイトのURLを入力できるテキスト入力要素があります。ここで、ユーザーのプロファイルを更新するフォームがGETを使用するとします。
ページ更新の送信は次のようになります。
http://www.example.com/privateprofile.pl?action=update&userwebpage=http://www.example.net
攻撃者は、ユーザーをだましてURLをロードさせることにより、これを悪用する可能性があります。
http://www.example.com/privateprofile.pl?action=update&userwebpage= [malicious_js_code_here]
もちろん、これはかなり些細な例ですが、一般的な概念を示していることを願っています。懸念されるのは、ユーザーをだましてXSSに入る可能性があるということです。もちろん、このようなXSS攻撃の実行可能性は、特定の実装によって異なります。
いいえ、すべてのデータが非公開で表示されている場合、実際のリスクはありません。XSSの要点は、ドライブバイを実行して、別のユーザーのブラウザでセッションやその他の個人情報を乗っ取ることにあります。そのような機会がなければ、XSSのようなものはありません。
はい-それはあなたをまったく保護しません。実際、これは通常のシナリオです。考慮しなければならないのは、ハッカーがURLを使用してXSSをサイトに植え付け、他の誰かにそのURLを開くように説得すると、ユーザーのデータ(Cookie、パスワードなど)が盗まれる可能性があるということです。