Javascript 如何通过Google CAJA传递图书馆?
有人知道我是否可以配置GoogleCaja,这样它就可以让一些精确的库正常工作,而不会被清理? 我有自己的CAJA服务器和基于NodeJS的应用程序。我将传递给GoogleCaja用户代码,它将主要与图表和图形相关,但所有库函数(如d3js、chart.js)都被CAJA阻止。 所有库都经过Caja并连接到用户文档,没有错误,但如果用户请求库的任何功能(例如Javascript 如何通过Google CAJA传递图书馆?,javascript,node.js,d3.js,google-caja,Javascript,Node.js,D3.js,Google Caja,有人知道我是否可以配置GoogleCaja,这样它就可以让一些精确的库正常工作,而不会被清理? 我有自己的CAJA服务器和基于NodeJS的应用程序。我将传递给GoogleCaja用户代码,它将主要与图表和图形相关,但所有库函数(如d3js、chart.js)都被CAJA阻止。 所有库都经过Caja并连接到用户文档,没有错误,但如果用户请求库的任何功能(例如d3.select(“body”).append(“svg”)),则它会显示错误,例如这*不是一个函数。有人知道什么方法吗 PS我知道URI
d3.select(“body”).append(“svg”)
),则它会显示错误,例如这*不是一个函数。有人知道什么方法吗
PS我知道URI策略,但它似乎只控制所有内容,即来自同一来源域名的内容,即使库通过uriPolicy传递,Caja仍在检查它 您可以从uriPolicy.release函数将url返回到库的预缓解/预哄骗/受信任版本。您只需检查库url,如果它匹配,则返回预初始化url,否则返回null。例如:
var uriPolicy = {
mitigate: function(uri) {
if(/jquery\.js/.test(uri))
return urlToMyJquery.js;
else
return null;
}
}
你看到uriPolicy的缓解属性了吗?嗨!是的,我找到了,不幸的是我没能让它工作。我找不到它的任何文档,我在caja本身的源代码中找到了它。如果您有一些关于它如何工作的信息,我将非常感谢。谢谢,如果我想连接非预信任列表中的内容,该怎么办?例如D3.js。我如何从自己的存储中获取它?基本上,您可以将url返回到任何资源,无论其是否减轻。尽管一个未缓解的应用程序可能会给你的应用程序带来安全风险,但要非常小心