PHP程序防止外部页面提交表单主要是为了防止跨站请求伪造(Cross-Site Request Forgery, CSRF)攻击。CSRF攻击是一种网络攻击方式,攻击者通过诱导用户在已登录的网站上执行非预期的操作,例如提交表单。
适用于所有需要保护用户操作安全的Web应用,特别是涉及用户敏感信息或重要操作的场景。
<?php
session_start();
if (empty($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
$csrfToken = $_SESSION['csrf_token'];
?>
<!DOCTYPE html>
<html>
<head>
<title>Form Page</title>
</head>
<body>
<form action="submit.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo $csrfToken; ?>">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<button type="submit">Submit</button>
</form>
</body>
</html>
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) {
die("CSRF token validation failed.");
}
// 处理表单数据
$username = $_POST['username'];
$password = $_POST['password'];
// 进行其他操作...
}
?>
通过Token验证可以有效防止CSRF攻击,确保表单提交的安全性。在实际应用中,应根据具体需求选择合适的防护措施,并定期进行安全审计和更新。
领取专属 10元无门槛券
手把手带您无忧上云