csrf - 防止CSRF?

标签 csrf

我已经从这里 (stackoverflow) 和 看到了一些问题THIS 帖子,但我还有一些问题......

  • 在帖子表单中使用隐藏值并在帖子到达服务器时检查它。
  • 隐藏值可以很容易地复制和发送,就像真实的一样,“难以猜测”(如 md5)无济于事。 (对吗?)
  • 当您到达表单并将 cookie 值作为隐藏值发送时设置 cookie。
  • 您可以使用相同的真实隐藏值轻松更改 cookie 值或发送与真实 cookie 完全相同的自定义 cookie。 (对吗?)
  • 使用“超时”,POST 值不会太晚。
  • 所以,如果你很慢,当你尝试用隐藏值设置一切时你会失败。如果你很快,它会起作用。 (对吗?)

  • 我想受到关于 CSRF 的保护……但是我到底是怎么做的呢?

    最佳答案

    我发现防止 CSRF 问题的最简单方法是:

  • 在服务器端,分配一个 HttpOnly使用随机(不可猜测的) token 向客户端发送 cookie
  • 使用该 cookie 值在表单上放置一个隐藏字段
  • 表单提交时,确保隐藏字段值等于 cookie 值(在服务器端)
  • 关于csrf - 防止CSRF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8716674/

    相关文章:

    csrf - Google OAuth 状态 token 实际上阻止了什么 CSRF?

    http - 验证 FORM POST 的来源以确保它来自同一服务器/应用程序

    php - Laravel CSRF 中间件不检查 X-CSRF-TOKEN 请求 header

    angularjs - 如何为 Spring Boot 生成的 XSRF-Token cookie 设置 max-age

    Jquery Ajax 表单未提交且 url 显示 csrf token

    csrf - Elm:http.post csrf

    spring-boot - 在 spring boot 中禁用 CSRF 的原因

    angular - 在 Angular 中拦截 HTTP header

    json - 在HTTP GET中使用MVC3的AntiForgeryToken来避免Javascript CSRF漏洞

    django - 在不需要身份验证的页面中包含 'CSRF token' 是否存在安全风险?