当前位置: 首页 > 面试题库 >

使用跨域XMLHttpRequest有哪些安全风险?

胡光霁
2023-03-14
问题内容

在许多地方,我已经看到人们谈论过跨域XMLHttpRequest,由于某些 安全原因 ,这是不可能的。但是,我还没有找到表明这些 安全原因
实际上是什么的帖子?

人们提到JSONP是不错的选择之一。另一种选择是使用OriginAccess-Control-Allow-Origin标头。

但是,我只想知道由于跨域XMLHttpRequest的使用会引起哪些安全问题?


问题答案:

我认为最好回答您的问题的示例,为什么这太糟糕了。

您转到我的网站(example.org)。我加载了一个脚本,该脚本向facebook.com/messages/from/yourgirlfriend发出客户端AJAX请求。您碰巧登录了facebook,浏览器告诉Facebook我的请求实际上是您。Facebook很高兴向我发出请求,告知您您想尝试的奇怪性行为的消息。我现在知道有关您的事情,您可能不想让我知道。

当然,这是一个疯狂的夸张,而且由于相同的原产地政策,这是不可能的。

你现在不觉得安全吗?



 类似资料:
  • 常规网页可以使用 XMLHttpRequest 对象从远程服务器发送和接收数据,但是它们受 same origin 策略的限制。内容脚本已将其注入其中的 Web origin 发起请求,因此,内容脚本也应遵循相同的 same origin 策略。 (自Chrome 73 以来,内容脚本就一直受 CORB 的限制,而 自Chrome 83以来,内容脚本就受 CORS 的限制。)扩展源的限制不是很有效

  • 本文向大家介绍跨域通信有哪些方式?相关面试题,主要包含被问及跨域通信有哪些方式?时的应答技巧和注意事项,需要的朋友参考一下 JSONP WebSocket CORS Hash postMessage

  • 问题内容: 默认情况下,浏览器不允许跨站点AJAX请求。 我了解,设想不正确的跨域请求 可能 会带来安全风险。如果我使用外部站点的html或javascript,然后将其“呈现”到我的网站中,那就是一个问题。该外部代码可用于处理许多不良情况,例如访问当前用户的会话数据。 但是,如果我仅请求JSON或XML数据,并且使用适当的库来解析JSON(而不仅仅是使用eval),我将无法想象这会带来安全风险。

  • 我最近不得不将设置为,以便能够进行跨子域AJAX调用。我觉得这可能是个安全问题。如果我保持这种设置,我将面临什么样的风险?

  • 刚刚介绍了Streams和Java8 Lambda功能,最后对不言自明的Oracle doc Lambda表达式的评论指出: 如果lambda表达式的目标类型及其捕获的参数可序列化,则可以序列化该表达式。然而,与内部类一样,强烈反对lambda表达式的序列化。 检查这个我发现了SO问题 如何序列化lambda? 其中OP处理来自客户端代码的序列化lambda表达式。 如果我有一个webservic