我正尝试使用jQuery的ajax方法在不同的域上创建Web服务。在做一些研究之后,看起来它不允许这是通过设计来防止跨站点脚本。
我碰到周围是包括这条线的工作:
$.support.cors = true;
在我的javascript代码顶部。据我所知,这使jQuery中的跨站点脚本。
这行代码是否会让我的网站更容易受到攻击?我一直听说XSS是一个安全问题,XSS有合法用途吗?
我正尝试使用jQuery的ajax方法在不同的域上创建Web服务。在做一些研究之后,看起来它不允许这是通过设计来防止跨站点脚本。
我碰到周围是包括这条线的工作:
$.support.cors = true;
在我的javascript代码顶部。据我所知,这使jQuery中的跨站点脚本。
这行代码是否会让我的网站更容易受到攻击?我一直听说XSS是一个安全问题,XSS有合法用途吗?
XSS不是可以在jQuery中启用的功能。如果jQuery核心存在XSS漏洞,这将非常不寻常,但它是可能的并且其名为DOM-based XSS。
“跨源资源共享”或CORS与XSS,但是不相同,但是如果Web应用程序存在XSS漏洞,那么攻击者将对该域中的所有资源具有类CORS访问权限。简而言之,CORS使您可以控制如何打破same origin policy,从而无需引入完整的XSS漏洞。
$.support.cors
查询功能依赖于Access-Control-Allow-Origin
HTTP响应标头。这个可能是的一个漏洞。例如,如果Web应用程序在每个页面上都有Access-Control-Allow-Origin: *
,则攻击者将具有与XSS虚拟性相同的访问级别。要小心你在哪些页面上引入了CORS头文件,并尽量避免使用*
。
因此,要回答你的问题:NO一个Web应用程序就不需要,因为周围有SOP如CORS/JSONP /跨域代理/ access-control-origin的方式介绍了XSS漏洞。
如果你有一个简单的GET,你只想启用,并且你有一个网站的子域名,那么你如何使默认访问风格行为在链接中工作。你没有给你的理念。 –
@ kitgui.com我不知道你在问什么或者与安全有什么关系。 – rook
有没有?最后。 –
它只能帮助,如果你在浏览器中启用CORS但它不是由jQuery的被支持:
为了能够在不支持 CORS但但允许环境跨域请求跨域XHR请求(Windows小工具等), set $ .support.cors = true ;. CORS WD
仅将此属性设置为true不会导致安全漏洞。
当黑客能够注入脚本代码以将请求更改为另一个域时,他也可以在脚本中设置此JavaScript标志。
因此,在这个入侵点上,这个标志设置的变化不大。
这真的没有回答这个问题。在入侵的时候,所有的赌注都没有了。但是这个想法是为了防止这种情况发生。 – jpaugh
背景:http://api.jquery.com/jQuery.support/我不认为设置*启用*任何东西,但。它只是告诉jQuery支持什么 –
@Pekka - 你链接的文档完全相反。 –
@Alvaro通过设置该变量不会*启用* CORS。你只是告诉jQuery你正处于一个跨域XHR请求可能的环境中。 (所以,当然,你可以在jQuery中使用它们,这很公平。) –