我一直在研究JS库,并希望在Github上设置一个演示页面,例如,用户可以定义自己的回调并执行命令。
我知道“eval()
是邪恶的”,我可以看到脚本的盲eval()
如何导致XSS和其他安全问题。我正在尝试做一些替代方案。
我真的很喜欢jsFiddle的互动性。我已经看了他们的来源,但希望有人可以在这里列出jsFiddle如何允许并执行用户定义的JavaScript而不会有危险。只要它不涉及第三方echo服务器,我希望我能模仿这种方法。
答案 0 :(得分:27)
jsFiddle在单独的域http://fiddle.jshell.net
(try it and see)上执行用户脚本
因此,它不能与父框架交互,也不能窃取cookie。
实际上,您可以在没有单独服务器的情况下执行此操作,方法是将静态页面放在一个单独的域中,该域从Javascript中的查询字符串中读取。
您可以使用页面标题进行回复(敌人也可以回复)。