jsFiddle如何在不危险的情况下允许并执行用户定义的JavaScript?

时间:2011-11-04 01:36:18

标签: javascript security cross-domain eval user-input

我一直在研究JS库,并希望在Github上设置一个演示页面,例如,用户可以定义自己的回调并执行命令。

我知道“eval()是邪恶的”,我可以看到脚本的盲eval()如何导致XSS和其他安全问题。我正在尝试做一些替代方案。

我真的很喜欢jsFiddle的互动性。我已经看了他们的来源,但希望有人可以在这里列出jsFiddle如何允许并执行用户定义的JavaScript而不会有危险。只要它不涉及第三方echo服务器,我希望我能模仿这种方法。

1 个答案:

答案 0 :(得分:27)

jsFiddle在单独的域http://fiddle.jshell.nettry it and see)上执行用户脚本 因此,它不能与父框架交互,也不能窃取cookie。

实际上,您可以在没有单独服务器的情况下执行此操作,方法是将静态页面放在一个单独的域中,该域从Javascript中的查询字符串中读取。
您可以使用页面标题进行回复(敌人也可以回复)。