PHP PDO データのサニタイズについて調べていたところ、次の投稿に出会いました。
私のコードは PDOStatement bindParam を使用して SQL インジェクションを防止していると確信していますが、このコメントを読みました (言い換え)
「トークンで $_POST を使用すると、CSRF を回避するのに役立ちます」
トークンとは何を意味し、どのように実装するのですか?
PHP PDO データのサニタイズについて調べていたところ、次の投稿に出会いました。
私のコードは PDOStatement bindParam を使用して SQL インジェクションを防止していると確信していますが、このコメントを読みました (言い換え)
「トークンで $_POST を使用すると、CSRF を回避するのに役立ちます」
トークンとは何を意味し、どのように実装するのですか?
トークンは何らかのハッシュである場合があり、それをセッションに保存し、フォームを介して送信します。フォームデータを検証する前に、次のことを確認します。
簡単な実装:
<?php
session_start();
if(!isset($_SESSION['token']))
{
$_SESSION['token']=uniqid();
}
?>
<form method="post">
<input name="token" type="hidden" value="<?php echo $_SESSION['token'];?>">
<input name="something" value="some data to send">
<input type="submit">
</form>
<?php
if(isset($_POST['something']))
{
if(!isset($_POST['token']) || $_POST['token']!==$_SESSION['token'])
{
echo 'missing a valid token';
}
else
{
echo 'got a valid token, I will use the data';
}
}
?>