跨源共享(CORS)的一点疑惑
大家都熟悉同源法则http://www.w3.org/Security/wiki/Same_Origin_Policy
现在w3c又出了跨源共享机制http://www.w3.org/TR/cors/#cors-api-specification-security
我有点迷糊的就是,同源法则就是出于安全的考虑禁止对其它源的访问,但是它仍然不能保证跨站脚本的攻击。同源法则也导致正常的跨域请求实现很麻烦,然而这个跨域同源机制的控制却又是在其它源服务器上(通过发Access-Control-Allow-Origin 头),而不是本源服务器或代码。
我就很纠结这个,照我想,安全控制应该是本源的事,是否可访问其它源应有本源来控制,如果这样的话,本源正常的跨源访问就很方便了。而实际上为什么要其它源来控制是否可访问呢,这对于跨站脚本倒是个好事,它肯定乐意跨源来执行它的脚本了。
我自己的理解是,从字面上看共享这个词就是控制资源是否可以共享,这个机制是控制本站资源是否允许被其它站点访问。
这个解释我自己都说不过去啊,公开的站点哪需要这个多余的机制来控制呢,而对于正常的跨域请求,这个机制还是不方便呢。
搞不清白!
参见: