首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

HTML5安全风险详析之一:CORS强攻

2012-09-14 
HTML5安全风险详析之一:CORS攻击一、从SOP到CORSSOP就是Same Origin Policy同源策略,指一个域的文档或脚本,

HTML5安全风险详析之一:CORS攻击

一、从SOP到CORS

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

HTML5安全风险详析之一:CORS强攻

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

HTML5安全风险详析之一:CORS强攻

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

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


四、防御之道

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

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

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

      原创文章,转载请注明:来自蒋宇捷的博客

热点排行