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

我正尝试使用jQuery的ajax方法在不同的域上创buildWeb服务。 在做了一些研究之后,看起来它不允许这是通过devise来防止跨站点脚本。

我遇到了一个围绕这一行的工作:

$.support.cors = true; 

在我的JavaScript代码的顶部。 据我所知,这使得在jQuery跨站点脚本。

有这样的代码行使我的网站更容易受到攻击? 我一直听说XSS是一个安全问题,XSS有合法用途吗?

XSS不是可以在jQuery中启用的function。 如果jQuery核心存在XSS漏洞,这将是非常非常不寻常的,但它是可能的,而且它被称为基于DOM的XSS 。

“跨源资源共享”或CORS与XSS不同, 但是 ,如果Web应用程序存在XSS漏洞,则攻击者可以使用类似CORS的方式访问该域上的所有资源。 简而言之,CORS使您可以控制如何打破相同的源策略 ,从而不需要引入完整的XSS漏洞。

$.support.cors查询function依赖于Access-Control-Allow-Origin HTTP响应头。 这可能是一个漏洞。 例如,如果Web应用程序在每个页面上都具有Access-Control-Allow-Origin: * ,那么攻击者将具有与XSS虚拟性相同的访问级别。 要小心哪些页面介绍CORS头,尽量避免*

所以要回答你的问题: 没有一个Web应用程序永远不需要引入XSS漏洞,因为有围绕SOP的方法,比如CORS / jsonp /跨域代理/ 访问控制源 。

它只有在浏览器中启用了CORS的情况下才有帮助,但是jQuery不支持它:

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

只需将此属性设置为true不会导致安全漏洞。

当黑客能够注入脚本代码来将请求更改为另一个域时,他也可以在脚本中设置此JavaScript标志。

因此,这个标志设置在这个入侵点上并没有太大的变化。