xssとは、攻撃者が送り込んだ悪意のコードをそのページを閲覧した不特定多数のユーザに、スクリプト(簡易的プログラム)として実行させる可能性があることを指す
別のWebサイトにユーザを誘導することがクロスサイトの由来となっている
test.php
<!DOCTYPE html> <html lang="ja"> <head> <script type="text/javascript"> document.cookie = "test=HelloWorld"; </script> <meta charset="utf-8"> <title>XSSテスト-入力画面-</title> </head> <body> <h1>入力画面</h1> <form action="confirm.php" method="post"> <label for="username">Name:</label> <input type="text" style="width:290px;" name="name"><br/><br/> <input type="submit" value="確認"> </form> </body> </html>
confirm.php
$name = $_POST['name']; echo $name;
テスト文字コード
'';!--"<XSS>=&{()}``\" <script>alert(1);</script> "><script>alert(1);</script>
### 対策後
$name = htmlspecialchars($_POST['name'], ENT_QUOTES, "UTF-8"); echo $name;
フレームワークによってエスケープ方法は異なる