CSRF攻击防范

来源:互联网 发布:编程珠玑 动态规划 编辑:程序博客网 时间:2024/05/18 00:18

一、什么是CSRF攻击


CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

二、CSRF攻击特性


三、CSRF攻击防范措施

  1. 最简单方式,b站在服务端验证请求来源Referer
    每个http请求中,浏览器都会带上来源页面,比如: Referer:http://www.37.com/,可以通过验证Referer过滤掉跨站的请求。

  2. 最有效的方式,通过csrf-token
    在用户的登录状态中记录一个csrf-token(这里说的登录状态有可能记录在服务器端,也有可能存在cookie中,按具体的业务来操作),在提交表单请求时,必须带有这个csrf-token,才能验证通过。一些PHP框架已经包含这种功能了,通常是在表单中生成一个hidden的input元素,而instagram这个站点,使用ajax请求是把csrf-token放到header中发送。无论怎样,这2个方法都能达到防止csrf攻击的目的。


0 0
原创粉丝点击