Javascript 创建一个;“试试看”;代码编辑器-有安全问题吗?

Javascript 创建一个;“试试看”;代码编辑器-有安全问题吗?,javascript,security,Javascript,Security,我正在创建一个简单的“自己尝试”代码编辑器,就像在W3S上一样。从源代码看,似乎只需使用JavaScript的document.write()命令将输入左侧文本区域的内容写入右侧的iframe,而无需任何修改: function submitTryit() { var text = document.getElementById("textareaCode").value; var ifr = document.createElement("iframe"); ifr.setAttr

我正在创建一个简单的“自己尝试”代码编辑器,就像在W3S上一样。从源代码看,似乎只需使用JavaScript的
document.write()
命令将输入左侧文本区域的内容写入右侧的iframe,而无需任何修改:

function submitTryit() {
  var text = document.getElementById("textareaCode").value;
  var ifr = document.createElement("iframe");
  ifr.setAttribute("frameborder", "0");
  ifr.setAttribute("id", "iframeResult");  
  document.getElementById("iframewrapper").innerHTML = "";
  document.getElementById("iframewrapper").appendChild(ifr);
  var ifrw = (ifr.contentWindow) ? ifr.contentWindow : (ifr.contentDocument.document) ? ifr.contentDocument.document : ifr.contentDocument;
  ifrw.document.open();
  ifrw.document.write(text);  
  ifrw.document.close();
}
这本身是安全的吗,还是我遗漏了一些为了安全而做得更多的东西


谢谢,

如果javascript没有以可以呈现给用户(而不是作者)的浏览器的方式持久化,那么您应该不会有问题。否则,您将创建一个可用于传播XSS蠕虫的平台。只允许用户在自己的页面上执行任意javascript的安全性不亚于大多数现代浏览器的安全性,这些浏览器都有一个调试控制台,允许用户执行javascript。

针对什么进行安全保护?请不要混淆W3C和W3C学校(尽管我确信W3C学校完全有意让您混淆)。安全防范什么?用户总是可以自己进行黑客攻击。
eval
的各种形式只是一个问题,如果A)其他用户可以控制evaled值b)有任何危害,就像loginI应该澄清的那样,编辑器将发布在网上供所有访问者使用,以防止潜在的恶意用户。但是。。。它在他们的浏览器上运行。“否则,您将创建一个可用于传播XSS蠕虫的平台。”---如何?有很多类似JSFIDLE的网站,确实有很多这样的网站。我不知道他们是否试图阻止这类事情,但我没有看到任何关于他们被用于攻击的宣传。话虽如此,任何可以运行javascript的网站都可以测试您的浏览器是否存在易受攻击的插件,并试图利用这些插件进行攻击。另外,值得注意的是,像jsfiddle这样的大多数站点都使用iframe来防止javascript干扰外部框架。编辑:你可能会发现这很有趣。