我们有一个非常简单的api,并希望返回以在另一个站点上呈现一些内容。我想从我们的api端点发送类似的内容(例如http://domain.com/api/endpoint/1,其中包含的内容类似于< script src ='http:// domain / api / endpoint / 1'>< / script>) :
document.write('here is my value<br />');
document.write('Let me give you some inforamtion about this<br />');
然后逃脱它。不关心https或内容。两个人模糊地告诉我他们认为这是不安全的但是如果我们在我们这边正确处理它,我真的不知道它是怎么回事(无论如何都是这样)?这样安全吗?我错过了什么吗? JSONP对于类似的东西来说太过分了 - 我们想要最简单的技术。
事先提前答案 0 :(得分:1)
如果您将一个域中的脚本包含在另一个域的网页上,只要您控制这两个域,就不会出现安全问题。有很多网站从CDN或内容子域或整个其他域提供脚本标签。
document.write的使用已经过时,可能会让您头疼。
您唯一的安全问题是,如果您的API允许将用户内容文档写入页面,那么您就会受到跨站点脚本攻击的攻击,有人将其用户名设置为如下所示:< / p>
/><script>document.write('<script src="myevilpage.com"></script>'</script>
然后您的代码很高兴地将其注入页面,然后每个访问它的人都会感染病毒并且他们的计算机会爆炸。 通常,您需要先将任何基于用户的输入转义,然后再将其发送到您的API,并在您的javascript中对其进行清理,然后将其作为textNode或类似技巧插入到页面中,以阻止人们操作您的页面。