什么是CSRF呢?
跨站点请求伪造(CSRF),中文通常翻译为跨站点请求伪造。常被选为owasp漏洞列表中的前10名,并且与XSS和SQL一起在当前网络漏洞排名中名列前三。CSRF比前两者受到的关注要少得多,但是它的危害却很大。
一般来说,防御CSRF攻击的方法有三种:验证令牌、验证HTTP请求的引用者和验证XMLHttpRequests中的定制标题。由于各种原因,这三种方法并不完美,各有优缺点。
第二,CSRF的分类。
在跨站点请求伪造攻击中,攻击者通过向用户浏览器注入额外的网络请求来破坏网站对话的完整性。浏览器的安全策略是允许当前页面向任何地址发送请求,这意味着当用户浏览他/她无法控制的资源时,攻击者可以控制页面的内容来控制浏览器发送精心构建的请求。
一、网络连接。举例来说,如果攻击者无法直接访问防火墙内的资源,他可以利用防火墙内用户的浏览器间接发送网络请求,以满足他想要访问的资源。即使是这样,攻击者也会使用受害者的IP地址来启动他想要启动的请求,以避免基于IP地址的认证策略。
二、获取浏览器状态。当浏览器发送请求时,网络协议通常包含浏览器状态。这包括很多东西,比如cookie、客户端证书或者基于身份验证的标题。因此,当攻击者向需要这些cookie、证书、标题等的网站发送请求时。为了通过浏览器验证,网站无法区分真正的用户和攻击者。
三、改变浏览器状态。在攻击者使用浏览器发起请求时,浏览器还会对服务器进行分析和响应。举例来说,如果服务器的响应包含了一个收集cookie的头部,那么浏览器就会对应收集Cookie并修改存储在本地的Cookie。这种改变会导致微妙的攻击,这将在第三部分进行描述。
行动范围内的威胁:我们根据危险的大小将这部分分成三种不同的危险模型。
1.论坛可以在这里互动。很多网站,比如论坛,允许用户定制各种有限的内容。比如一般来说,网站允许用户提交图片或链接等被动内容。如果攻击者让图片的网址指向恶意地址,这种网络请求很可能导致CSRF攻击。这些地方可以提出要求,但是这些要求不能定制HTTP头,必须使用GET方法。虽然HTTP协议规范要求不应该是有害的,但是很多网站不符合这个要求。
二.网络攻击者。这里网络攻击者的定义是指拥有自己独立域名的恶意代理,比如attacker.com,在attacker.com拥有HTTPS证书和web服务器。这些功能只需要10美元就可以完成。一旦用户访问attacker.com,攻击者可以使用GET和POST发起跨站点请求,这就是所谓的CSRF攻击。
三.网络攻击者。这里的网络攻击者是指可以控制用户网络连接的恶意代理。比如攻击者可以通过控制无线路由器或者DNS服务器来控制用户的网络连接。这种攻击比网络攻击需要更多的资源和准备,但我们认为也威胁到HTTPS网站。因为HTTPS网站只能保护活跃的网络。
还没有评论,来说两句吧...