创建一个"尝试它"代码编辑器 - 任何安全问题?

时间:2015-11-09 02:07:43

标签: javascript security

我正在制作一个简单的"自己试试" W3schools上的the one found代码编辑器。查看源代码,似乎所有人都使用JavaScript的document.write()命令将输入​​到左边的textarea的内容写入右边的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();
}

这本身是安全的,还是我遗漏了w3school's editor内部为了安全而做更多事情的事情?

谢谢,

1 个答案:

答案 0 :(得分:0)

如果javascript没有以这样的方式持久存储,它可以呈现给作者以外的用户的浏览器,那么你应该没问题。否则,您将创建一个可用于传播XSS蠕虫的平台。只允许用户在自己的页面上执行任意javascript并不比使用调试控制台允许用户执行javascript的大多数现代浏览器安全。