【 PHP 】PHP8に入門してみた 225日目 PHPの基本 ( 高度 セキュリティ その3 )

2023年4月3日

PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。

高度

クロスサイトリクエストフォージェリ

PHPではクロスサイトリクエストフォージェリの対策に「トークン」を推奨しているようです。

  1. フォームにトークンを追加する:
    フォームにランダムなトークンを追加しセッションに保存します。
    フォームの送信時にトークンを送信することでCSRF攻撃を防止できます。
  2. トークンを検証する:
    フォームが送信されたときに送信されたトークンをセッションに保存されたトークンと比較します。
    トークンが一致しない場合は、フォームの送信を拒否します。
<?php
// トークンを生成してセッションに保存する
$token = bin2hex(random_bytes(32));
$_SESSION['token'] = $token;
?>

<form method="POST" action="submit.php">
  <!-- 生成したトークンをhiddenで送信する -->
  <input type="hidden" name="token" value="<?php echo $token; ?>">
  <!-- フォームのその他のフィールド -->
  <input type="text" name="name">
  <input type="email" name="email">
  <button type="submit">Submit</button>
</form>

メモ

今日は時間が無い!

PHPPHP

Posted by raika@blog