跨站请求伪造(Cross-site request forgery,简称为CSRF),也被称为one-click attack或者session riding。
攻击者通过一些手段伪造请求模仿用户提交表单的行为,从而达到修改用户数据或执行特定任务的目的。通常是攻击者欺骗用户浏览器来访问一个认证过的网站并进行一些步骤(比如发消息、购物、转账等),由于简单的网站用户身份验证只要验证了请求发自用户的浏览器就会被执行,因此这种方法能够轻而易举地欺骗网站从而通过身份验证。
假如,一家银行用来执行转账操作的URL地址如下:
examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
一个恶意攻击者可以在另一个网站上放置如下代码:
<img src="examplebank.com/withdraw?account=wangdun&amount=100&for=Badman">
假如有个账户名为wangdun的用户访问了恶意站点,而他在这之前才刚访问过银行不久、登陆信息尚未过期,马上就会发现自己的银行账户莫名其妙地少了100元。
危害
现在有很多形式的恶意网址被大量发布于网络中,攻击者不需要控制这些网址,只需要将大量地址藏匿于博客、论坛等任何能够发布信息的网站中就可以。
这意味着,假如服务端没有合适的防御措施,用户即使访问已通过安全审核的网页也有遭受攻击的危险。