XSSって何?
XSS攻撃は、ウェブサイトが抱えるセキュリティの甘さを突いた攻撃手法。攻撃者が悪質なスクリプトを仕込んで、他のユーザーがそれを見るときに実行される。
もしXSSが成功したらどうなる
XSS攻撃が成功すると、ユーザーセッションが盗まれたり、個人情報が流出したりする。
具体的にどうやって攻撃する
攻撃者は、ウェブアプリケーションの入力フィールド(フォームやコメント欄)に悪質なスクリプトを仕込んでXSSを仕掛ける。これによって、他のユーザーがそのコンテンツを見ると、スクリプトが実行されてしまう。
実際の攻撃例
例えば、攻撃者がこんなスクリプトを仕込んでみる。
<script>alert("XSS攻撃");</script>
これが表示されるページにアクセスしたユーザーは、「XSS攻撃」というアラートを見てしまうことになる。
どうやって守るか
-
入力データのエスケープ
- ユーザーからの入力データを表示する前に、エスケープ処理をしてスクリプトが実行されないようにする。
<?php echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8'); ?> -
Content Security Policy(CSP)の導入
- サイト内で実行を許可するスクリプトやリソースを指定するCSPを導入して、XSS攻撃を防ぐ
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://trusted-scripts.com">
XSS対策は意外と超重要だから、意識しないとですね。