![仅向特定主机发送自定义 HTTP 标头](https://linux22.com/image/1360325/%E4%BB%85%E5%90%91%E7%89%B9%E5%AE%9A%E4%B8%BB%E6%9C%BA%E5%8F%91%E9%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%20HTTP%20%E6%A0%87%E5%A4%B4.png)
有没有办法(Firefox 插件或 about:config 设置)向某个主机发送请求的自定义 HTTP 标头?
Foobar: true
示例:当(且仅当)我从主机请求资源时,发送标头foo.example.com
。
如果也可以指定协议,则可以获得加分(例如,仅通过 HTTPS 请求时发送标头)。
(参见我的问题在 Referer 中使用额外的“密码”来隐藏私人网站?关于为什么我想做 IT 安全 SE )
我目前发现
- 问题浏览器扩展会自动改变 HTTP 标头吗?类似,但正在寻找任何方法来实现这一点(例如借助本地代理),也不一定适用于 Firefox
- 您可以使用插件创建自定义标题修改标头,但它不允许我限制主机,因此它将为所有请求发送自定义标头
- 有一些附加组件允许为每个主机的某些 HTTP 标头设置自定义值:
- 参考控制为了
Referer
- HeaderControlRevived为
User-Agent
,Referer
并且Accept-Language
- 参考控制为了
- 相关问题:
答案1
如果你不受 Firefox 的限制,你可以使用 Google Chrome 的扩展程序标题黑客。
它提供:
- 自定义请求标头(您可以添加新标头或覆盖现有标头)
- 指定主机的永久标头(您可以添加新标头或覆盖现有标头)
这样您就可以使用第二个功能解决您的问题。
我经常使用该扩展,它对我来说效果很好。
答案2
Firefox 附加组件 Header Tool 可以满足您的需求: https://addons.mozilla.org/en-us/firefox/addon/header-tool/
我刚刚尝试将我的自定义请求标头限制到本地主机。
答案3
您可以通过在以下位置创建标题规则来轻松完成此操作:请求式。它是一个开源扩展+桌面应用程序,可让您使用易于创建的规则修改您的网络请求。
在 Firefox 上安装插件然后导航至https://app.requestly.io
单击New Rule
并选择Modify Headers
规则。这将打开规则编辑器。
要仅将规则应用于foo.example.com
您可以将目标选项设置为Host
equals
foo.example.com
您还可以根据请求的资源类型、方法类型等进行高级匹配,使用高级过滤器
虽然没有办法指定协议,但你仍然可以只使用以下选项来定位https
请求contains
或使用regex
现在点击Add Request Header
并输入要添加的标题值
保存规则并转到目标站点。现在您应该看到标头被添加到符合条件的每个请求中。
这些规则可以轻松地在任何浏览器上同步,因此您只需创建一次规则,它就可以在您安装的任何地方起作用。
您可以阅读更多关于修改 Headers 规则, 在文档
仅供参考:我积极为 Requestly 做贡献。因此,这个解决方案虽然有点偏颇,但却是我所知道的最简单的解决方案
答案4
如果你需要欺骗你的用户代理:
自定义 UserAgent 字符串:“为所需的 URL 或域添加自定义用户代理字符串。”
此插件将不是更改您的 javascript 用户代理。
要更改 JS UA,请将此用户脚本添加到 greamonkey:
// ==UserScript==
// @name Change navigator.userAgent
// @namespace Rob W
// @description Changes navigator.userAgent to IE on IEGallery.com
// @match http://www.iegallery.com/*
// @run-at document-start
// @grant none
// @version 1
// ==/UserScript==
Object.defineProperty(navigator, 'userAgent', {
value: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'
});
这些过时的插件不是与当前的 Firefox 兼容:
- UA控制:此扩展将允许您控制每个站点(域)在 HTTP 标头中作为 User-Agent 发送的字符串。
请注意,这无法控制 JavaScript 使用的本机 User-Agent 字符串(例如 navigator.userAgent)。 - ua-站点切换:更改当前域的用户代理。UA
仅在请求 HTTP 标头中更改,因此它不会阻止 Javascript 确定真正的 UA。
如果您需要在 javascript 级别更改 UA,您可以使用一个名为 User-Agent JS Fixer 的插件。 - 用户代理 JS 修复程序:此插件可以针对每个站点更改 JavaScript 用户代理,而不是针对整个会话进行更改。
它本身不执行任何操作,但它可以补充其他插件(如 UAControl 或 ua-site-switch)的功能。无需额外配置,它使用与它们相同的设置。
它所做的只是使用在 HTTP 标头上发送的相同字符串重新定义 JavaScript 代码(navigator.userAgent)的用户代理。
[....作为一个起点,如果有人想写一个更好的插件]