仅向特定主机发送自定义 HTTP 标头

仅向特定主机发送自定义 HTTP 标头

有没有办法(Firefox 插件或 about:config 设置)向某个主机发送请求的自定义 HTTP 标头?

Foobar: true示例:当(且仅当)我从主机请求资源时,发送标头foo.example.com

如果也可以指定协议,则可以获得加分(例如,仅通过 HTTPS 请求时发送标头)。

(参见我的问题在 Referer 中使用额外的“密码”来隐藏私人网站?关于为什么我想做 IT 安全 SE )

我目前发现

答案1

如果你不受 Firefox 的限制,你可以使用 Google Chrome 的扩展程序标题黑客

它提供:

  1. 自定义请求标头(您可以添加新标头或覆盖现有标头)
  2. 指定主机的永久标头(您可以添加新标头或覆盖现有标头)

这样您就可以使用第二个功能解决您的问题。

我经常使用该扩展,它对我来说效果很好。

答案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

URL 包含

或使用regex

URL 匹配正则表达式

现在点击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)的用户代理。

[....作为一个起点,如果有人想写一个更好的插件]

相关内容