※動作テストは自己責任で必ず自分の環境で確認すること。
スクリプトインジェクションとは
サイトコンテンツ内にJavaScriptを埋め込み、第三者に表示・実行させる攻撃。
クライアント・サイド・スクリプト埋め込み攻撃とも言う。
サイトコンテンツ内にJavaScript等を埋め込み、第三者に表示・実行させる攻撃
■攻撃先
echo文、print()関数、<?php ?>などで出力される変数部分 GET、POST、COOKIEの全リクエストとSERVER・FILES変数の一部、RSS/ATOM/メール/EXIF/Flashなど、任意のテキストデータソース全て
■被害
クッキーを盗まれる(セッションハイジャック、パスワード漏洩など) サイト訪問者が次々と悪意のあるサイトにリダイレクトされる。
Case 1
・RSS/ATOMで取得したヘッドライン情報をそのままブラウザに出力
・画像などのアップロードを許可し、そのファイルのMIME-TYPEをブラウザに出力
・画像などのアップロードを許可し、画像ファイルのEXIFをブラウザに出力
・$_SERVER['HTTP_REFERE']などのSEVER変数をブラウザに出力
・不特定多数による投稿による投稿データを表示する際にサニタイズなしにブラウザに出力
対策方法
<?php echo htmlspecialchars($rss_data['description'], ENT_QUOTES); echo htmlspecialchars($file['type'], ENT_QUOTES); $exif_data = exif_read($file_name); echo htmlspecialchars($exif_data['Mode1'], ENT_QUOTES); echo htmlspecialchars($logs[[$i]['HTTP_REFERE'], ENT_QUOTES); echo htmlspecialchars($row['title'], ENT_QUOTES); ?>
Case 2
外部またはアップロードされた任意のFlashを貼り付け可能として、第三者のブラウザにもFlashとして実行可能として出力する。
対策方法
任意のswfについてはサニタイズの手段がないため、このコードは防ぎようがない。
新品価格 |
![]() |