我正在编写一个内部工具,它将支持其他开发人员编写的插件。理想情况下,这些插件应该有一个 Javascript 组件来允许人们制作小部件。这些小部件操作的某些页面可能包含敏感数据。我要避免的是开发人员编写一个具有 javascript 的插件,该插件将此数据发布到某个外部服务器。但是,对于这些小部件的操作来说,它们必须能够操纵页面上的数据。基本上这些小部件应该只能够影响数据的呈现,但它们不应该能够窃取它。
我看过 adsafe,但这太严格了,因为这些小部件只能操作 adsafe 小部件提供的 dom,因此无法访问它们需要的数据。我还查看了 Google Caja,这可能是一个不错的解决方案,尽管它的交叉编译会使代码在性能关键的环境中执行得更慢(我也没有玩过它,所以我不知道具体是否可以使用它以避免发布)。
我认为“理想”的解决方案可能是某种静态分析工具,可以消除“仅”尝试联系外部服务器的程序,但我欢迎任何可行的建议。