【问题标题】:Restrict Cross Domain Ajax request限制跨域 Ajax 请求
【发布时间】:2011-09-07 19:21:46
【问题描述】:

我有一个 web 应用程序(在 java 中),我需要通过 jquery 或简单的 javaScript ajax 调用在任何浏览器中通过 Ajax 调用限制跨域请求(包括 IE 限制 XDomainRequest 对象)。

我的最终目标是在通过某些浏览器设置或设置响应标头进行调用时限制它,这样它就不会在第一点本身进行调用。

如果同源策略是一种解决方案,请解释它是如何解决的。

感谢和问候, 大洋洲

【问题讨论】:

  • 你在问什么?不清楚。

标签: javascript browser xmlhttprequest cross-domain httpresponse


【解决方案1】:

您可以通过Access-Control-Allow-Origin 响应标头控制您接受来自哪些域的 AJAX 请求。如果缺少标头,则只允许来自同一域的请求。

更新:如果您甚至想禁止发起 AJAX 请求,您可以尝试X-Content-Security-Policy:xhr-src 'none',但我无法想象在任何情况下这会有用。或许你可以更详细地解释一下情况?

【讨论】:

  • 谢谢 4 的回复,但是当 ajax 调用从请求服务器(远程域)返回时,此 Access-Control-Allow-Origin 标志在响应中得到验证,对吗?我需要阻止 ajax 请求本身,这样它就不会将任何值从本地域发布到远程域服务器。
  • 我不确定这整个情况是否可能,但我有一个奇怪的想法,如果某些 xss 攻击者在受害者页面中放置恶意代码,试图从该本地页面窃取一些敏感信息,然后通过 ajax 调用将其发布到其他服务器上.....
  • @Oceanvijai:内容安全策略将阻止大多数 XSS 攻击(例如,本地 <script> 标签和 javascript: URI 在使用时不会执行),它可以阻止大多数通话回家的方法(AJAX、脚本标签、不可见的 iframe 或图像)。但是,我认为您无法阻止 XSS 攻击通过 window.locationwindow.open 发送被盗数据。 (此外,CSP 目前仅适用于 Firefox 4。)
猜你喜欢
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多