有没有人知道我是否可以配置Google Caja,这样它就可以让一些确切的库工作,而不是被消毒?我有自己的CAJA服务器,并基于NodeJS的应用程序。我正在传递给Google CAJA用户的代码,这将主要是与图表和图形有关,但所有的库函数(如d3js,chart.js)都被CAJA阻塞。所有的库都通过Caja并连接到用户的文档,没有错误,但如果用户请求库的任何功能(例如d3.select("body").append("svg") ),那么它就会显示错误,如this * is not a function。有谁知道什么方法吗?
PS我知道URI策略,但它似乎只是控制所有的东西,即从相同来源的域名出去,无论何时,即使库通过uriPolicy传递,它仍然被Caja检查。
发布于 2017-03-25 21:40:30
您可以从uriPolicy.mitigate函数将url返回到库的预减轻/预欺骗/信任版本。您可以只检查库的url,如果匹配,则返回简化的URL,否则返回null。例如:
var uriPolicy = {
mitigate: function(uri) {
if(/jquery\.js/.test(uri))
return urlToMyJquery.js;
else
return null;
}
}https://stackoverflow.com/questions/39385560
复制相似问题