XSS(クロスサイトスクリプション)とは

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;

フレームワークによってエスケープ方法は異なる