我读的是关于CORS,我认为这个实现既简单又有效。跨源资源共享(CORS) - 我在这里错过了什么?
但是,除非我错过了某些东西,否则我认为规范中缺少很大一部分内容。据我了解,外国网站根据请求的来源(可选择包括凭证)决定是否允许访问其资源。这可以。
但是如果页面上的恶意代码想要将用户的敏感信息发布到外部网站会怎么样?国外网站显然会验证请求。因此,如果我没有错过任何东西,CORS实际上可以更容易地窃取敏感信息。
我认为如果原始网站也可以提供其页面允许访问的不可变列表的服务器,它会更有意义。
所以扩展顺序将是:
- 供应与可接受CORS服务器列表的页面(abc.com,xyz.com等)
- 页希望让一个XHR请求为abc。 com - 浏览器允许这样做,因为它在允许列表中,并且认证正常进行
- Page想要向恶意网站发出XHR请求 - 请求在本地(即通过浏览器)拒绝请求,因为服务器不在列表中。
我知道,恶意代码仍然可以使用JSONP来完成其肮脏的工作,但我想不到的是,CORS的完整实现将意味着脚本标签多站点漏洞闭幕。
我也检查出了官方的CORS规范(http://www.w3.org/TR/cors),并没有发现任何提及这个问题。
我的主要观点并不是关闭当前的漏洞,而是出现了(至少对我而言)是CORS规范中的一个大漏洞。 – 2010-03-28 14:20:52