是否可以清理Javascript代码?

Tom*_*Tom 7 javascript xss

我想在我的网站区域允许用户贡献的Javascript.

  1. 这完全是疯了吗?
  2. 是否有任何Javascript清理程序脚本或良好的正则表达式模式来扫描警报,iframe,远程脚本包括和其他恶意Javascript?
  3. 是否应该手动授权此过程(由人检查Javascript)?
  4. 允许用户仅使用框架(如jQuery)而不是让他们访问实际的Javascript更合理吗?这样可以更容易监控.

谢谢

Rob*_*sto 6

我认为正确的答案是1.

只要您允许使用Javascript,就可以打开自己和用户的各种问题.没有完美的方法来清理Javascript,像Troll Army这样的人会把它作为个人使命来搞砸你.


Chu*_*bas 5

1. 这完全是疯了吗?

别这么想,但近在咫尺。让我们来看看。

2. 是否有任何 Javascript 清理脚本或良好的正则表达式模式可以扫描警报、iframe、远程脚本包含和其他恶意 Javascript?

是的,至少有谷歌 CajaADSafe来清理代码,允许它被沙箱化。不过,我不知道他们提供的最值得信赖的程度。

3. 这个过程是否应该手动授权(通过人工检查 Javascript)?

沙箱可能会失败,因此这将是一个明智的解决方案,具体取决于被恶意(或错误)代码攻击的风险和权衡。

4. 允许用户只使用框架(如 jQuery)而不是让他们访问实际的 Javascript 是否更明智?这样可能更容易监控。

JQuery 只是普通的 Javascript,所以如果你想防止攻击,它根本无济于事。

如果防止此类攻击至关重要,您可以实现自定义语言,在后端对其进行解析并生成受控、安全的 javascript;或者您可以考虑另一种策略,例如提供 API 并从应用程序的第三方组件访问它。