防止跨站攻击——CSRFToken

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止跨站攻击——CSRFToken相关的知识,希望对你有一定的参考价值。

参考技术A CSRF:无法获取受害者的cookie,无法看到cookie;

只是利用受害者是被服务器信任的(靠验证cookie),而给服务器发送请求;

怎么防止跨站攻击:

表单:在 Form 表单中添加一个隐藏的的字段,值是 csrf_token。

非表单:在ajax获取数据时,添加headers: 'X-CSRFToken':getCookie('csrf_token') 。

原理:在浏览器访问网站A时,网站A设置cookie会增加随机值csrf_token,这个值是随机的。返回给浏览器时,cookie会储存在浏览器,同时会把csrf_token传给表单里面的隐藏字段。所以当浏览器用自己的表单时会自带csrf_token,网站A取到这个值和cookie里的csrf_token一致就通过。而网站B里面的表单没有这个值,所以不能通过,这样就阻止了恶意攻击。非表单也是这样的原理。

以上是关于防止跨站攻击——CSRFToken的主要内容,如果未能解决你的问题,请参考以下文章

21)django-csrf(跨站请求伪造)

Web安全之防止XSS跨站脚本攻击

防止xss(跨站脚本攻击)

request.getHeader("Origin") 如何防止跨站请求伪造攻击?

PHP实现的防止跨站和xss攻击代码

来自阿里云的PHP实现的防止跨站和xss攻击代码,测试有用