允许用户输入javascript代码

时间:2013-06-22 19:51:28

标签: javascript security eval

注意:我无法在网站上找到问题,如果它存在,请将其作为重复

对于out应用程序,我们有一个基于浏览器的客户端使用javascript。我们的应用程序遵循客户端服务器体系结构,但仅在内部部署,即它不暴露给Web。 我正在考虑为用户提供有限的脚本支持(使用javascript),有点类似于基于桌面的应用程序(如matlab)提供的

  1. 允许用户编写脚本是否安全。
  2. 实施的安全方式是什么(eval,使用iframe等)

1 个答案:

答案 0 :(得分:1)

从安全角度来看:在页面上运行脚本不是问题,用户已经可以通过按f12并打开控制台来执行此操作。

问题是如果您允许用户将js保存到您的数据库中,然后由另一个用户将其加载到页面上。

想象一下,如果您有一个允许script标签的评论系统,潜在的恶作剧者现在可以执行用户可以执行的任何功能。

甚至锚标记<a href="javascript:pageFunction()">click on me</a>

如果仅供用户使用,我会将脚本附加到正文中。

var scr = document.createElement("script");
scr.textContent = 'alert("hi")';
document.body.appendChild(scr);