有 一直 许多 提案用于增强JSONP通信的安全性--其中一些通信无法理解这一点。
现在的情况是,当向某个提供程序发出JSONP请求时,他必须信任提供程序返回一些封装在回调中的JSON数据。实际上,相信提供者将anything包装成所需的回调就足够了:我们可以使用JSON.parse来确保anything是有效的JSON。在任何情况下,没有什么可以阻止提供程序忽略回调并返回恶意脚本。
使该机制安全的唯一方法是在客户端上添加一些增强。客户端不应该盲目地插入脚本,而应该在允许脚本的之前解析它。这在本质上是许多提案所提倡的,但这当然需要浏览器供应商的一些协作。所以我们来问我的问题
是否有某个浏览器供应商提出实施这种机制的具体建议?
发布于 2011-03-07 15:41:58
在具有CORS支持的浏览器中使用跨域XHR请求可能最终解决这个问题。通过XHR引入响应而不是脚本注入可以防止不必要的代码执行,然后(正如您所提到的) JSON.parse()可以用于解释/验证JSON响应。
https://stackoverflow.com/questions/5221308
复制相似问题