security - 匿名评论/帖子表单是否需要 csrf token ?如果不是,为什么要使用它以及如何实现它?

标签 security csrf csrf-protection

有一些讨论like this在 SO 上声称匿名表单不需要 csrf 保护。查看stackoverflow html代码,未登录时可以看到csrf token
以匿名用户身份发帖时设置为他的回答框。

  • 此 csrf token 如何帮助保护匿名用户?
  • csrf token 应与用户 session ID 相关联。匿名用户的等价物是什么? ip地址?
  • 最佳答案

    How does this csrf token help protecting an anonymous user?



    经验法则是任何 state changing operation需要保护免受 CSRF 攻击。所以如果你的表单是一个状态改变操作,它应该受到保护。例如,this answer描述了为什么需要在登录表单上使用 CSRF 保护(请记住,登录时用户是匿名的)。我见过您也想保护的匿名投票表。在轮询表单的情况下,CSRF token 保护站点的完整性(匿名轮询站点具有的完整性)。

    另一方面,有些表单不需要 CSRF 保护。显然,在 JavaScript 中处理并且永远不会到达服务器的表单不需要 CSRF 保护。对于执行基本实用程序(例如语言翻译表单)的表单也是如此。

    csrf token should be associated with a user session id. What's the equivalent used for an anonymous user? The ip address?



    大多数 Web 框架都为匿名用户提供有状态 session 。例如,PHP 使用 $_SESSION多变的。他们通常在用户浏览器中将 cookie 设置为 session ID。您将使用有状态 session 来存储 CSRF token 的服务器端副本。

    关于security - 匿名评论/帖子表单是否需要 csrf token ?如果不是,为什么要使用它以及如何实现它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767893/

    相关文章:

    PHP 引荐来源网址 : How to make sure a request is actually coming from where it's supposed to come from

    security - 为什么CSRF token应该在meta标签和cookie中?

    c# - 我应该选择 : This is a full trust application

    javascript - 如何通过javascript将CSRF token 添加到动态生成的表单中

    algorithm - Quicksort 是否存在潜在的安全风险?

    zend-framework2 - ZF2中CSRF的默认超时

    java - Spring Security CSRF 支持手动安全配置

    javascript - EXTJS CSRF 保护

    javascript - 如何使用 Express JS 4.0 的 csurf?

    angularjs - 如何实现跨域请求的csrf保护