我们正在努力保护我们的网站 - 提交表单时是否有人可以绕过我们网站对 cookie 的要求?我们正在努力防止跨站点攻击。谢谢
问问题
216 次
1 回答
1
我认为您的意思是Cross Site Request Forgery (CSRF)。这可以通过表单中的特殊 CSRF 令牌轻松防止。
每次显示表单时,令牌都应该不同。
<?php
$token = md5(time()); /* a simple attempt to generate a token */
$_SESSION['csrf_token'] = $token;
?>
将其包含在您的表单中。
<form>
<input type="hidden" name="csrf_token" value="<?php echo $token ?>">
...
</form>
并在表单提交时在服务器上验证它。
<?php
$storedToken = $_SESSION['csrf_token'];
unset($_SESSION['csrf_token']);
if ($_POST['csrf_token'] == $storedToken) { ... }
?>
确保令牌只能使用一次。
如果还没有使用 SSL,也可以使用 SSL来提高安全性。
于 2013-04-26T10:37:01.333 回答