CSRF(cross-site request forgery)跨站请求伪造,对网站的恶意利用,与XSS有很大差别,XSS利用站点内的信任用户,而CSRF是伪装成受信任用户请求受信任的网站。
例如:用户A访问一个正常的业务系统X,给用户C转账的一个操作。实现该功能的url为:http://www.xxx.com/user=yonghu_c&monny=100,user为转钱的目标用户C,monny为转账金钱。此时用户A已经登陆了http://www.xxx.com,此时浏览器已经有了登陆cookie信息,那么用户A打开此网站的其他链接,不需要重新登陆,不需要重新获取cookie(当然必须同域),登陆后www.xxx.com后,用户A没有点击退出操作,随即又打开了另外一个网站Y,www.yyy.com,网站Y被攻击者入侵了,存在一个恶意的文件或图片或链接(恶意的文件或图片,背后的恶意代码为http://www.xxx.com/user=yonghu_d&monny=100),用户C点击后,浏览器会直接访问http://www.xxx.com/user=yonghu_d&monny=100,则直接实现给yonghu_d的转账操作。
防御手段:
1、服务器校验referer字段,诱导某用户访问目标网站时,会存在跨域的请求,referer就能很好的判断,请求是不是合法的
2、类似这种业务,服务器返回一个token,客户端每次访问时,都需要携带这个