クロスサイトスクリプティング
悪意のあるユーザによりJavascriptなどのスクリプトが埋め込まれる問題。
他のユーザーがそのページを表示した際に、埋め込まれたスクリプトが実行され、色々な問題が引き起こされる。
■対策
htmlspecialchars() により入力データをエスケープする。
■注意
<style> や <script> の内部に入力データを挿入する場合は、htmlspecialchars() だけでは不十分である。
この場合は、はてなダイアリーXSS対策を参考にする。
■メモ
サニタイジングはHTML生成時に行うのが良い。
フォーム受付時に行うと、将来他の入力方法を追加した場合にサニタイジングを忘れたり、重複して行うなどのトラブルを起こしやすい。
<悪いケース>
<良いケース>
配列に対して htmlspecialchars() を適用したい場合は array_map() が便利。
○参考
他のユーザーがそのページを表示した際に、埋め込まれたスクリプトが実行され、色々な問題が引き起こされる。
■対策
htmlspecialchars() により入力データをエスケープする。
■注意
<style> や <script> の内部に入力データを挿入する場合は、htmlspecialchars() だけでは不十分である。
この場合は、はてなダイアリーXSS対策を参考にする。
■メモ
サニタイジングはHTML生成時に行うのが良い。
フォーム受付時に行うと、将来他の入力方法を追加した場合にサニタイジングを忘れたり、重複して行うなどのトラブルを起こしやすい。
<悪いケース>
フォーム─→サニタイジング────→プログラム処理────→出力 ↑ メール(追加)────────┘ ←(サニタイジング忘れる)
<良いケース>
フォーム────→プログラム処理────→サニタイジング─→出力 ↑ メール(追加)┘
配列に対して htmlspecialchars() を適用したい場合は array_map() が便利。
$output_array = array_map('htmlspecialchars', $output_array);
○参考
2005年08月19日(金) 03:57:02 Modified by isamun3