去检查http://phpsec.org/projects/guide/2.html以使反馈表更安全。以我非常有限的技能想出了这样的事情:
假设有 form.php(表单)和 form-processing.php(用于发送它的脚本)。在 form.php 的开头:
<?php
session_start();
$token = md5(uniqid(rand(), true));
$_SESSION['token'] = $token;
...并且在表单本身的开头将令牌回显到隐藏字段中:
<form method="POST">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
在 form-processing.php 的开头:
<?php
session_start();
if (isset($_SESSION['token']) && $_POST['token'] == $_SESSION['token'])
{
}
else {
die( "Invalid token" );
}
这会安全地完成这项工作吗?