我希望能够让社区成员提供他们自己的javascript代码供其他人使用,因为用户的想象力远远超过我想象的任何东西。如何让外部代码“安全”运行?只是禁止eval()?
但是这引起了固有的安全问题,特别是当目的是要允许外部代码运行。
那么,我可以从提交中禁止eval()
并完成它吗?或者有其他方法来评估代码或导致在JavaScript大规模恐慌?
还有其他的东西是不允许的,但我主要关心的是,除非我可以阻止字符串被执行,否则无论我为特定方法放置哪些其他过滤器都可以规避。是否可行,还是我不得不求助于作者提供Web服务界面?
有着悠久的安全工作经验,他们将无限权限的语言和“驯服”为安全。请参阅上面提到的Joe-E语言和Caja语言。 – 2009-09-30 18:02:21