我有以下代码可以防止表单欺骗。令牌用于匹配并确保提交的表单来自该页面。
if (isset($_POST['Submit'])) {
if (!isset($_POST['token']) || $_POST['token'] != $_SESSION['token']) {
// error, form spoofing, return to users' page or do something else
echo '<script>',
'alert("Form spoofing error!! Please Try again later")',
'</script>';
} else {
//Continue with submission
}
}
每次我提交表单时都会显示该错误,并且仅在存在安全风险时才需要显示。
谢谢。
编辑:在页面开头添加了以下代码:
$_SESSION['token'] = md5(time());
添加了一个隐藏字段,该字段与提交后会话开始时创建的令牌匹配:
<input name="token" id="token" value="<?php echo md5(time()); ?>" type="hidden">
每次提交表单后都会出现 PHP 欺骗错误,这不允许我提交表单。