gpt4 book ai didi

google-chrome-extension - 我怎样才能修改主机头

转载 作者:行者123 更新时间:2023-12-03 23:18:08 25 4
gpt4 key购买 nike

我正在尝试开发一个 chrome 扩展,可以在某些请求上设置“主机” header 。但是关于是否可以修改“主机” header ,文档是矛盾的。

这两个问题都表明 a) 不应该和 b) 不可能 https://code.google.com/p/chromium/issues/detail?id=154900 https://code.google.com/p/chromium/issues/detail?id=158073

然而,库中的多个扩展声明它们确实修改了“主机” header 。例如 https://chrome.google.com/webstore/detail/header-hacker/phnffahgegfkcobeaapbenpmdnkifigc?hl=en https://chrome.google.com/webstore/detail/change-http-request-heade/ppmibgfeefcglejjlpeihfdimbkfbbnm

是否可以修改 windows 版本的 chrome 中的“主机” header ,如果可以,如何修改?

背景:我希望能够测试通过 IP 地址直接访问每个主机的负载均衡 Web 实例。 “主机”文件对于大量主机来说太麻烦了。目前我使用 curl 传递修改后的“主机” header ,但我确实需要浏览器中的解决方案并可供其他人使用。

最佳答案

@kzahel 是对的,关于重定向的说明很准确,这是我的基本工作代码。

chrome.webRequest.onBeforeSendHeaders.addListener(function (details) {
if (details.url.indexOf('toast.txt') <= -1)
return;
details.requestHeaders.push({
name: 'Host',
value: 'testhost:80'
});
return { requestHeaders: details.requestHeaders };
}, {
urls: ['http://*/*']
}, ['requestHeaders', 'blocking']);

chrome.webRequest.onBeforeRequest.addListener(function (details) {
if (details.url.indexOf('sauce') <= -1)
return;
var url = 'http://127.0.0.1/toast.txt';
return { redirectUrl: url };
}, {
urls: ['http://*/*']
}, ['blocking']);

不可否认,这是一个有点奇怪的例子,但它是这样的。

我的本​​地 IIS 创建了一个站点,该站点指向一个文件夹,该文件夹包含一个绑定(bind)到“testhost”的文件“toast.txt”。

Windows 无法知道“testhost”,例如无法 ping 通。

随着扩展程序的运行。输入地址http://testhost/sauce

该扩展在“onBeforeRequest”方法中记录了“sauce”并重定向到“http://127.0.0.1/toast.txt”,后者又被“onBeforeSendHeaders”获取"添加包含 "testhost:80"的 "Host" header 的方法。所有这些都发生在请求离开 Chrome 之前。

现在 IIS 收到请求“/toast.txt”,它本身会导致 404,但是因为设置了“Host” header ,它会将请求推送到绑定(bind)到“testhost”的新网站,然后返回“toast.txt”文件。

呸!

关于google-chrome-extension - 我怎样才能修改主机头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com