我正在尝试理解JSONP是如何工作的,从我迄今为止非常基本的理解,我觉得它用于规避相同的源策略浏览器强制执行。我想这个政策背后的主要原因是为了防止像XSS漏洞利用这样的东西(其中有人说可以注入一个脚本,利用用户机器上的本地cookie来获取有价值的信息,比如当用户登录他们的银行账户时)。 ......是吗?)现在,如果JSONP正在规避这个政策,那么这个政策不能被利用吗?很抱歉,如果这个问题非常基本......几天前我就开始尝试提取javascript,而我仍然试图绕过它:)
谢谢!
答案 0 :(得分:2)
当您使用JSONP时,您相信托管网站不会注入恶意代码或允许攻击者注入恶意代码。
基本上答案是:是的。如果您没有这种信任程度,请不要使用该网站的JSONP。
答案 1 :(得分:2)
是的,它可以。如果您不信任您要求其数据的第三方,或者有人可以在其间注入某些内容,那么请不要使用JSONP。 JSONP将允许来自第三方网站的任意代码在您的页面上运行。
答案 2 :(得分:2)
真正的问题是,你相信其他域吗?由于其他域基本上被授予对页面的完全访问权限(通过JavaScript),因此您应该完全确定您信任它们。如果他们想要他们可以很容易地破坏你的页面,重定向用户,或者更糟糕的是:窃取你的cookie(这会导致一大堆潜在的问题)。
来自:http://james.padolsey.com/javascript/cross-domain-requests-with-jsonp-safe/
所以,基本上,是的,它可以用于XSS漏洞利用。因此,您信任主机域非常重要。如果您不确定主机域的完整性,请避免使用JSONP。
答案 3 :(得分:2)
JSONP正在利用script
标记可以从外部域加载数据这一事实。当您将CDN用于流行的库时,您一直在这样做。
因此,JSONP本身并不会使XSS漏洞更容易。 “问题”是script
标签可以加载任意文件,这与JSONP无关。无论何时加载外部文件,都必须确保它们不包含恶意代码。