首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止CSRF?

阻止CSRF?
EN

Stack Overflow用户
提问于 2012-01-03 18:06:06
回答 2查看 3K关注 0票数 7

我已经看到了一些问题(堆叠溢出)和的帖子,但我仍然有一些问题.

  1. 在post表单中使用隐藏值,并在post到达服务器时检查它。
代码语言:javascript
复制
- The hidden value can easy be copied and send exactly like the real one, "hard to guess" (like md5) will not help. (right?)

  1. 到达窗体并将cookie值作为隐藏值发送时设置cookie。
代码语言:javascript
复制
- You can easily change a cookie value or send a custom cookie exactly like the real one using the same real hidden value. (right?)

  1. 使用“超时值”,POST值不能到达太晚。
代码语言:javascript
复制
- So, if you're slow you will fail when you try to set everything up with the hidden value. If you're fast it gonna work. (right?)

我想得到CSRF...but的保护--我到底是怎么做的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-03 18:08:28

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

  1. 在服务器端,使用随机(不可猜测的)令牌将HttpOnly cookie分配给客户端。
  2. 在窗体上放置一个带有cookie值的隐藏字段
  3. 在表单提交时,确保隐藏字段值等于cookie值(在服务器端)
票数 8
EN

Stack Overflow用户

发布于 2017-01-07 21:19:52

如果你做了以下的改变,我认为你是安全的

  • 不应允许通过GET (或更好的POST )更新数据(因为两者都可以通过HTML表单使用)
  • 禁用服务器上的CORS (或至少在关键的端点和/或对数据进行更改)
  • 允许只使用JSON的API(即。只接受至少在关键端点上通过JSON输入)

只需添加到上面:不要使用方法重写和不支持旧浏览器。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8716674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档