通过cors政策来规避csrf

csrf

大家应该很收悉csrf了,我就不赘述了.总结一下现在通用的几种防csrf的方法.

cors

cors是浏览器执行的跨域政策.基础的我就不写了,分享两个特别的地方:

通过cors来规避csrf

做法很简单,让前端在每个请求前都加上

crsf_avoid_header: whatever

服务器校验一下有没有这个header就好了.

原理就很简单了,我们知道恶意网站无论如何是不能设置这个header的,想设置先变成复杂请求,然后判断一下是否同源,只要你没有信任恶意网站,那么除了你自己没人能带着header成功访问.

我发现这个问题之后,在v2ex发了帖子,发现很多人根本没有理解csrf是什么,争论的根本不是一件事.无奈只能去英文社区寻找支持,果然质量就搞了很多.

我想出来的方法更简单,而且足以防范crsf,但是为什么没有成为更广泛的做法呢?

资源:

https://security.stackexchange.com/questions/10227/csrf-with-json-post

http://blog.alutam.com/2011/09/14/jersey-and-cross-site-request-forgery-csrf/

http://security.stackexchange.com/questions/22903/why-refresh-csrf-token-per-form-request

http://security.stackexchange.com/questions/23371/csrf-protection-with-custom-headers-and-without-validating-token