0

我们正在努力保护我们的网站 - 提交表单时是否有人可以绕过我们网站对 cookie 的要求?我们正在努力防止跨站点攻击。谢谢

4

1 回答 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 回答