Web安全 -- CSRF

向锦
2023-12-01

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF

CSRF是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

例如(CSRF+XSS蠕虫):

 test.com 存在XSS漏洞!

 xss.test.com 和他同源!

访问xss.test.com构造好的页面=>触发test.com中的xss

这就是渗透的重要性,要控制xss.test.com页面

假如银行转账操作的URL地址如下:

http://test.com/pay?account=AccoutName&amount=1000

那么,一个恶意攻击者可以在另一个网站上放置如下代码:

<img src="http://test.com/pay?account=lishi&amount=1000">

如果有账户名为lishi的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么就会损失1000块钱。

简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

前提要同源策略的问题:

同源策略,它是由Netscape提出的一个著名的安全策略。

现在所有支持JavaScript 的浏览器都会使用这个策略。

所谓同源是指,域名,协议,端口相同

当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面

当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,

即检查是否同源,只有和百度同源的脚本才会被执行

如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。

 类似资料: