【问题标题】:Firefox Extension - Filter & modify HTTP POST data using onBeforeRequestFirefox 扩展 - 使用 onBeforeRequest 过滤和修改 HTTP POST 数据
【发布时间】:2020-06-21 17:21:33
【问题描述】:

使用browser.webRequest.onBeforeRequest.addListener() 我能够过滤HTTP 请求并在返回页面之前修改它们的来源。我需要拦截 HTTP POST 请求并修改表单提交的数据,然后再将其发送到服务器。检查代码:

browser.webRequest.onBeforeRequest.addListener(
    function(details) {
        // The code in this if is just some experimentation.
        if(details.method == "POST") {
            let filter = browser.webRequest.filterResponseData(details.requestId)
            let decoder = new TextDecoder("utf-8")
            let encoder = new TextEncoder()
            filter.ondata = event => {
                let str = decoder.decode(event.data, {
                    stream: true
                });
                console.log(str)
            }
            // This is a where I attempt to modify POST data.
            let formData = details.requestBody.formData;
            //console.log(formData)
            if(formData) {
                Object.keys(formData).forEach(key => {
                    formData[key].forEach(value => {
                        //console.log(key)
                        if(key == 'testField'){
                            //console.log("found", formData[key])
                            details.requestBody.formData[key] = "INJECTED"
                            console.log('injected', details.requestBody.formData[key])
                        }
                    })
                })
            }

            return {details: details};
        }
    },
    {urls: ["https://example.com/*"]},
    ["blocking", "requestBody"]
);

最后一个console.log 打印修改后的值,但返回details 不会将修改后的值转发到服务器。如何在 Firefox 扩展中使用onBeforeRequest(或任何其他方法)在将 POST 变量发送到服务器之前对其进行修改?

我不想将代码注入网页。我想过滤流量。

【问题讨论】:

    标签: javascript firefox firefox-addon firefox-addon-webextensions


    【解决方案1】:

    【讨论】:

    • 好的,谢谢。我最终放弃了。为了替换它,我使用了一个内容脚本来截取<input> 标签。请在答案中添加它作为解决方法,我会接受。 “建议的编辑队列”现在已满,所以我无法编辑您的帖子。
    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多