有没有人知道我是否可以配置Google Caja,所以它让一些确切的库工作而不被清理?
我有自己的CAJA服务器,以及基于NodeJS的应用程序。我传递给Google CAJA用户代码,这些代码主要与图表和图形相关,但所有库函数(如d3js,chart.js)都被CAJA阻止。
所有库都通过Caja并连接到用户的文档而没有错误,但如果用户请求库的任何功能(例如d3.select("body").append("svg")
),那么它显示错误,如this * is not a function
。有谁知道任何方法?
答案 0 :(得分:1)
您可以从uriPolicy.mitigate函数将url返回到预先缓解/预先调用/受信任的库版本。您可以只检查库url,如果匹配,则返回premitigated URL,否则返回null。例如:
var uriPolicy = {
mitigate: function(uri) {
if(/jquery\.js/.test(uri))
return urlToMyJquery.js;
else
return null;
}
}