浏览器安全之CSRF跨站请求伪造

基本概念

跨站请求伪造(Cross-site request forgery)简称CSRF,尽管与跨站脚本漏洞名称相近,但它与跨站脚本漏洞不同。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

CSRF和反射型XSS的主要区别是:反射型XSS的目的是在客户端执行脚本,CSRF的目的是在Web应用中执行操作。

CSRF跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTTP请求,包括该用户的会话Cookie和其他认证信息,发送到一个存在漏洞的Web应用程序,而这些请求会被应用程序认为是用户的合法请求。

CSRF 攻击类型

  • GET 类型的 CSRF 攻击,比如在网站中的一个 img 标签里构建一个请求,当用户打开这个网站的时候就会自动发起提交。
  • POST 类型的 CSRF 攻击,比如构建一个表单,然后隐藏它,当用户进入页面时,自动提交这个表单。
  • 链接类型的 CSRF 攻击,比如在 a 标签的 href 属性里构建一个请求,然后诱导用户去点击。

CSRF攻击防御

基本思路是,避免透露信息给攻击者,以增加攻击者伪造请求的难度,或是增加对请求的验证强度。

1.避免在URL中明文显示特定操作的参数内容
2.验证HTTP头部Referer信息
3.在请求地址中添加token并验证
4.在HTTP头中自定义属性并验证
5.要求用户提交额外的验证信息

猜你喜欢

转载自blog.csdn.net/weixin_40119412/article/details/130471692