使用$ .support.cors = true是否安全; 在jQuery?

Abe*_*ler 52 security xss jquery

我试图使用jQuery的ajax方法在不同的域上搜索Web服务.在做了一些研究之后,它看起来似乎不允许这是为了防止跨站点脚本.

我遇到了一个包含这一行的工作:

$.support.cors = true;
Run Code Online (Sandbox Code Playgroud)

在我的JavaScript代码的顶部.据我所知,这可以在jQuery中实现跨站点脚本.

这行代码是否会使我的网站更容易受到攻击?我一直听说XSS作为安全问题被讨论过,XSS有合法用途吗?

roo*_*ook 35

XSS不是可以在jQuery中启用的功能.这将是非常非常不寻常的,如果jQuery的核心有一个XSS漏洞,但它是可能的,其所谓的基于DOM的XSS.

"跨域资源共享"或CORS与XSS,BUT不同,但如果Web应用程序具有XSS漏洞,则攻击者可以对该域上的所有资源进行类似CORS的访问.简而言之,CORS使您可以控制如何中断相同的源策略,这样您就不需要引入完整的XSS漏洞.

所述$.support.cors查询特征依赖于Access-Control-Allow-OriginHTTP响应报头中.这可能是一个漏洞.例如,如果Web应用程序Access-Control-Allow-Origin: *在每个页面上都有,那么攻击者将具有与XSS vulenrablity相同的访问级别.小心你引入CORS标题的页面,尽量避免*使用.

因此,要回答你的问题: NO的web应用程序就不需要,因为周围有SOP如CORS/JSONP /跨域代理/方式介绍XSS漏洞访问控制原产地.

  • @ kitgui.com我不知道你在问什么或者它与安全有什么关系. (3认同)

bjo*_*rnd 11

只有在浏览器中启用了CORS但jQuery尚不支持它时,它才有用:

要在不支持cors但允许跨域XHR请求(Windows小工具等)的环境中启用跨域请求,请设置$ .support.cors = true;.CORS WD

仅将此属性设置为true不会导致安全漏洞.