Javascript 如果JSONP用于解决同源策略,则可以';它不能用于XSS漏洞攻击吗?

Javascript 如果JSONP用于解决同源策略,则可以';它不能用于XSS漏洞攻击吗?,javascript,jsonp,Javascript,Jsonp,我试图理解JSONP是如何工作的,从我目前为止的基本理解来看,我觉得它是用来规避同源策略的。我想这项政策背后的主要原因是为了防止XSS漏洞攻击(比如说有人可以在用户机器上注入一个脚本,利用本地cookie获取有价值的信息,比如当用户登录到他们的银行帐户时……是这样吗?)如果JSONP正在规避这项政策,难道不能利用它来做这样的事情吗?很抱歉,如果这个问题很基本的话……几天前我刚开始尝试学习javascript,现在我仍在努力学习:) 谢谢 当您使用JSONP时,您相信托管站点不会注入恶意代码或允许

我试图理解JSONP是如何工作的,从我目前为止的基本理解来看,我觉得它是用来规避同源策略的。我想这项政策背后的主要原因是为了防止XSS漏洞攻击(比如说有人可以在用户机器上注入一个脚本,利用本地cookie获取有价值的信息,比如当用户登录到他们的银行帐户时……是这样吗?)如果JSONP正在规避这项政策,难道不能利用它来做这样的事情吗?很抱歉,如果这个问题很基本的话……几天前我刚开始尝试学习javascript,现在我仍在努力学习:)


谢谢

当您使用JSONP时,您相信托管站点不会注入恶意代码或允许攻击者注入恶意代码


所以基本上答案是:是的。如果您没有那种信任级别,请不要使用该站点的JSONP。

是的,它可以。如果您不信任您正在请求其数据的第三方,或者如果有人可以在这两者之间注入一些东西,那么就不要使用JSONP。JSONP将允许来自第三方站点的任意代码在您的页面上运行

真正的问题是,你信任其他领域吗?由于另一个域基本上被授予了对您的页面的完全访问权(通过JavaScript),您应该绝对相信他们。如果他们愿意,他们可以很容易地破坏你的页面,重定向用户,或者更糟的是:窃取你的cookies(这会导致一大堆潜在问题)

发件人:


因此,基本上,是的,它可以用于XSS攻击。因此,信任主机域非常重要。如果您不确定主机域的完整性,请避免使用JSONP。

JSONP利用了
script
标记可以从外部域加载数据这一事实。当您为流行的库使用CDN时,您一直在这样做

因此,JSONP本身并不能使XSS利用更容易。“问题”在于
script
标记可以加载任意文件,而这与JSONP无关。无论何时加载外部文件,都必须确保它们不包含恶意代码