我正在编写一个Google Chrome扩展程序,其中包含用于javascript文件的SHA256校验和的白名单。只应该执行此白名单中的文件,其他所有文件都应该被阻止。
目前,我使用效率低但工作正常的代码来获取校验和并阻止请求。
chrome.webRequest.onHeadersReceived.addListener(
function(details) {
if(details.type == "script")
{
return getURL(details.url, false, function(data) {
var content = sha256(data);
if( hashList.indexOf(content) == -1 )
{
console.error(details.url+" not in whitelist");
return {cancel: true};
}
});
}
}, {
urls: ["<all_urls>"],
types: ["main_frame","script"]
}, ["blocking", "responseHeaders"]
);
此代码的问题:
我想了解/询问是否有方法可以通过访问源文件来避免这些问题,而无需下载两次(在documentation中找不到任何内容)或至少通过任何其他方式提高性能。< / p>
答案 0 :(得分:0)
先生。不幸的是,Cameron无法使用webRequest API获取请求体。
部分这是正确的,因为保存请求的内容可能会导致性能问题。 See此讨论了解更多细节。