一、介绍
1、简介
跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
2、攻击细节
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
3、CSRF 攻击的工作原理
-
用户认证:攻击者诱导受害者在浏览器中访问恶意网站。受害者在其他网站(例如银行、社交网站等)已经登录并保持认证(如 Cookie)。
-
恶意请求:恶意网站会向目标网站发送请求,通常是通过 GET 或 POST 请求,这些请求看起来像是受害者本人的请求,浏览器会自动附带该用户的 Cookie。
-
执行操作:目标网站根据请求中带来的认证信息(例如 Cookie),以为该请求是合法的,并执行相应的操作(如转账、修改密码、发布评论等)。
-
攻击成功:攻击者成功通过伪造请求让目标网站执行不