WEB CSRF防御问题

WEB前端的一个问题,我手中有一个java写的http Server,调用的是开源的Nanohttpd,页面上数据的提交都是通过
xhttp.open("POST", url, true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("");
实现的,请问这种方式我如何实现CSRF攻击,我查了资料说可以添加token,我该怎么添加?

阅读 2.4k
3 个回答

检查referer字段
HTTP头中有一个Referer字段,这个字段是用来标明请求来源于哪一个网址。通常来说,Referer字段应和请求的地址是在同一个域名下的。服务器可以通过判断Referer字段来判断请求的来源。
这种方法简单易行,但也有其局限性。http协议无法保证来访的浏览器的具体实现,可以通过篡改Referer字段的方式来进行攻击

使用token
token不存放在cookie中,那么攻击者就无法得到这个随机生成的token,就无法执行CSRF攻击

https://blog.csdn.net/ran_max...

用户登录后生成一个唯一的token,传给前端,前端每次发送请求的时候都带上这个token作验证

可以验证referer

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题