我有一个jquery插件,我正在使用jsonp对jsp文件进行跨域调用。 我想将jsp返回值仅限于我们数据库中的特定网站。 为了实现这一点,我需要以某种方式获取jsonp调用触发的网站的ip或url而不是客户端/用户ip。我已经在http标头中尝试了referer值,但这不适用于IE,我想这也不是最好的解决方案。 我怎么能安全地从他的网站上用我的插件调用我的jsp文件?
提前致谢。
答案 0 :(得分:1)
最简单的答案是向每个网站发布一个唯一的密钥或其请求中包含的其他标识符。您解析此标识符并适当地调整您的响应。
但是,如果来自客户端浏览器的请求,您必须要小心,并且必须评估“安全”您需要处理请求的含义。 (因为不受信任的客户端会提出请求,收集和重用这样的标识符将是一项简单的任务)......
引用者(如果存在)可以用作双重检查,但正如您所指出的,这是不可靠的并且来自不受信任的客户端计算机,请求的这部分也可能是伪造的。
如果我们可以假设网站所有者进行某些服务器端处理,您可以让他们为jsonp调用实现代理(这将确保这样的令牌永远不会落入浏览器的手中)......但是我们'我必须知道这样的保障措施是否真的值得:)