驱动管家:安全、高效、精准的专业驱动下载站!

cors带来哪些风险?cors攻击怎么防御?

2018-02-06 19:34:50责编:llp   来源:驱动管家     人气:

一、从SOP到CORS

SOP就是Same Origin Policy同源策略,指一个域的文档或脚本,不能获取或修改另一个域的文档的属性。也就是Ajax不能跨域访问,我们之前的Web资源访问的根本策略都是建立在SOP上的。它导致很多web开发者很痛苦,后来搞出很多跨域方案,比如JSONP和flash socket。如下图所示:

cors带来哪些风险?cors攻击怎么防御?

后来出现了CORS-CrossOrigin Resources Sharing,也即跨源资源共享,它定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。简言之,CORS就是为了让AJAX可以实现可控的跨域访问而生的。示意如下图所示:

cors带来哪些风险?cors攻击怎么防御?

现在W3C的官方文档目前还是工作草案,但是正在朝着W3C推荐的方向前进。不过目前许多现代浏览器都提供了对它的支持。

服务器端对于CORS的支持,主要就是通过设置Access-Control-Allow-Origin来进行的。如果浏览器检测到相应的设置,就可以允许Ajax进行跨域的访问。例如:

Access–Control-Allow-Origin: http://blog.csdn.net

应用CORS的系统目前包括Face.com、GoogleCloudStorage API等,主要是为开放平台向第三方提供访问的能力。

二、CORS带来的风险

CORS非常有用,可以共享许多内容,不过这里存在风险。因为它完全是一个盲目的协议,只是通过HTTP头来控制。

它的风险包括:

1、HTTP头只能说明请求来自一个特定的域,但是并不能保证这个事实。因为HTTP头可以被伪造。

所以未经身份验证的跨域请求应该永远不会被信任。如果一些重要的功能需要暴露或者返回敏感信息,应该需要验证Session ID。

2、第三方有可能被入侵

举一个场景,FriendFeed通过跨域请求访问Twitter,FriendFeed请求tweets、提交tweets并且执行一些用户操作,Twitter提供响应。两者都互相相信对方,所以FriendFeed并不验证获取数据的有效性,Twitter也针对Twitter开放了大部分的功能。

但是当如果Twitter被入侵后:

FriendFeed总是从Twitter获取数据,没有经过编码或者验证就在页面上显示这些信息。但是Twitter被入侵后,这些数据就可能是有害的。

或者FriendFeed被入侵时:

Twitter响应FriendFeed的请求,例如发表Tweets、更换用户名甚至删除账户。当FriendFeed被入侵后,攻击者可以利用这些请求来篡改用户数据。

所以对于请求方来说验证接收的数据有效性和服务方仅暴露最少最必须的功能是非常重要的。

3、恶意跨域请求

即便页面只允许来自某个信任网站的请求,但是它也会收到大量来自其他域的跨域请求。.这些请求有时可能会被用于执行应用层面的DDOS攻击,并不应该被应用来处理。

例如,考虑一个搜索页面。当通过'%'参数请求时搜索服务器会返回所有的记录,这可能是一个计算繁重的要求。要击垮这个网站,攻击者可以利用XSS漏洞将Javascript脚本注入某个公共论坛中,当用户访问这个论坛时,使用它的浏览器重复执行这个到服务器的搜索请求。或者即使不采用跨域请求,使用一个目标地址包含请求参数的图像元素也可以达到同样的目的。如果可能的话,攻击者甚至可以创建一个WebWorker执行这种攻击。这会消耗服务器大量的资源。

有效的解决办法是通过多种条件屏蔽掉非法的请求,例如HTTP头、参数等。

4、内部信息泄漏

假定一个内部站点开启了CORS,如果内部网络的用户访问了恶意网站,恶意网站可以通过COR(跨域请求)来获取到内部站点的内容。

5、针对用户的攻击

上面都是针对服务器的攻击,风险5则针对用户。比方说,攻击者已经确定了你可以全域访问的productsearch.php页面上存在SQL注入漏洞。 攻击者并不是直接从它们的系统数据库中获取数据,他们可能会编写一个JavaScript数据采集脚本,并在自己的网站或者存在XSS问题的网站上插入这段脚本。当受害者访问含有这种恶意JavaScript脚本的网站时,它的浏览器将执行针对“productsearch.php”的SQL注入攻击,采集所有的数据并发送给攻击者。检查服务器日志显示是受害人执行了攻击,因为除了来自Referrer的HTTP头一般没有其他日志记录。受害者并不能说他的系统被攻破,因为没有任何任何恶意软件或系统泄漏的痕迹。

三、攻击工具

Shell of the Future是一个反向WebShell处理器,它利用HTML5的跨站请求来劫持会话。

cors带来哪些风险?cors攻击怎么防御?

四、防御之道

1、不信任未经身份验证的跨域请求,应该首先验证Session ID或者Cookie。

2、对于请求方来说验证接收的数据有效性,服务方仅暴露最少最必须的功能。

3、通过多种条件屏蔽掉非法的请求,例如HTTP头、参数等。

以上就是CORS攻击详细介绍,希望对大家学习CORS攻击有所帮助。

  • 网站挂马非iis映射修改且源代码没有iframe代码

    网站挂马非iis映射修改且源代码没有iframe代码

    (挂马现象:非IIS映射修改,非ARP病毒,且源代码里没有iframe代码的)今天访问公司的一个网站,突然发现网页显示不对,右键查看HTML代码,发现iframe了一个网站的js文件,不用说,肯定被挂马了。进入服务器,看了下

    详情2018-01-29 19:35:14责编:llp   来源:驱动管家     
  • ddos攻击怎么防范?如何保护你的网络?

    ddos攻击怎么防范?如何保护你的网络?

    很多新手站长对DDoS攻击这一名词并不陌生,但什么是DDoS攻击,应该怎么防范不太清楚,现在我们用很通俗的语言来给大家解释一下:DDoS攻击其实就是一种利用某种技术手段将目标服务器与互联网连接的所有通道堵死,

    详情2018-02-05 08:52:11责编:llp   来源:驱动管家     
  • dns欺骗是什么?dns欺骗有什么条件和限制?

    dns欺骗是什么?dns欺骗有什么条件和限制?

    定义: DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“

    详情2018-01-02 16:11:39责编:llp   来源:驱动管家     
  • 木马病毒怎么查杀?木马病毒有哪些查杀方法?

    木马病毒怎么查杀?木马病毒有哪些查杀方法?

    在用电脑的过程中,经常会遇到一些木马病毒,中病毒后,很多人都会表示用电脑杀毒软件杀毒就可以了,还有一些人在使用杀毒软件后发现,病毒在重启电脑之后又再次出现了,那么怎么样才能彻底查杀电脑中的木马病毒

    详情2018-01-18 10:09:30责编:llp   来源:驱动管家     
  • 多多淘宝客防注入代码是什么?有什么漏洞?

    多多淘宝客防注入代码是什么?有什么漏洞?

    本文详解了多多淘宝客V7 4绕过防注入及一个注入漏洞的分析由于程序是开源程序并下载其程序看了一番。其实程序员还是有一点安全意识的:防注入代码:这段代码多少还是有瑕疵的、只过滤 get post 我们只要找调用

    详情2018-01-22 13:20:54责编:llp   来源:驱动管家     
  • 电脑防火墙在哪里设置?防火墙的设置方法(iptables篇)

    电脑防火墙在哪里设置?防火墙的设置方法(iptables篇)

    Firewall 防火墙,工作在网络或主机的边缘,对进出本网络或主机的数据包根据事先设置好的规则进行检查并且能够在数据包匹配到之后由预置的动作进行处理的组件的组合,有规则(符合条件,就有规则指定的动作进行处

    详情2018-01-05 13:27:00责编:llp   来源:驱动管家     
  • 手机电池小心充电 充电时间超过十二小时很危险

    手机电池小心充电 充电时间超过十二小时很危险

    近年来手机爆炸致人死伤事件时有发生,这让手机电池的稳定性和安全性成为消费者关注的焦点。手机电池的爆炸都是由手机电池引起。如何选用一块安全可靠的电池,如何正确使用手机电池,降低事故发生呢?在买手机或

    详情2018-01-17 11:34:10责编:llp   来源:驱动管家     
  • 网站漏洞扫描软件nmap有哪些功能?

    网站漏洞扫描软件nmap有哪些功能?

    nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP

    详情2018-01-30 14:07:38责编:llp   来源:驱动管家     
  • 什么是dos攻击?dos攻击有哪些方法?

    什么是dos攻击?dos攻击有哪些方法?

    DoS攻击由于攻击简单、容易达到目的、难于防止和追查越来越成为常见的攻击方式。对它的总体了解,成为有效避免,查找原因,制订对策提供有用的帮助。DoS(Denial of Service)拒绝服务攻击广义上可以指任何导致

    详情2018-02-01 12:17:26责编:llp   来源:驱动管家     
  • 小米miui刷机漏洞的危害 miui系统存在什么问题?

    小米miui刷机漏洞的危害 miui系统存在什么问题?

    该漏洞的成功利用不需要任何条件。通过该漏洞,任何应用软件可以获取下列信息:- 硬件数据,包括:系统版本、系统编译信息、内存和CPU信息、电池信息、IMEI、基带版本、设备生产序号等- 当前状态数据,包括:当

    详情2018-02-06 18:34:44责编:llp   来源:驱动管家