拦截包含.cvs文件的请求,并将其保持不变地发送到服务器

时间:2017-08-03 07:50:41

标签: google-chrome google-chrome-extension google-chrome-devtools

我正在制作需要收听请求(或下载文件夹)的扩展程序,并检测用户何时从特定网站列表下载.csv文件。然后,必须将.csv文件(或可能更改为其他格式,如明文)发送未更改到外部服务器以验证其内容。

我不是100%如何在Chrome中实现这一点,同时确保用户没有篡改该文件。我正在考虑使用Chrome扩展程序API解决此问题。

我认为你需要使用webRequest监听传入的请求,并检查content-type设置为.csv的时间,然后将请求内容发送到服务器。你能这样处理它吗:

  • 使用webRequest API中的各种方法获取未经更改的请求内容?

  • 从检测到的.csv请求中获取请求网址并让Chrome扩展程序再次使用XHR请求它,然后将其发送到服务器?

  • 使用webRequest API抓取请求并将其直接代理直接代理到服务器?

  • 使用webRequest API检测请求并获取需要授权用户的所有本地cookie并将其发送到服务器并让它模仿用户下载文件?

  • 收听下载文件夹,每当从特定网站下载新文件,然后将其不加改变地发送到服务器?

  • 使用webRequest API获取请求并计算内容的哈希值,以便我可以检测到对它的任何更改?

有人知道如何做到这一点。关键是我可以不加改变请求内容(在这种情况下是.csv)文件吗?

一个例子:

chrome.downloads.onCreated.addListener(function(item) {
    if (item === '.csv') {
        var xhr = new XMLHttpRequest();

        // Download the .csv file
        xhr.open("GET", https://download.csv, true);
        xhr.send();

        // Send it to the server
        xhr.open("POST", https://server.url, true);
        xhr.send('csv file');             
    }
});

0 个答案:

没有答案