alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-09-16
  • 发帖数2677
  • 经验487枚
  • 威望1点
  • 贡献值116点
  • 好评度82点
  • 社区居民
  • 最爱沙发
  • 忠实会员
阅读:13577回复:66

[扩展推荐]简洁高效的Header修改扩展HTTP Header Mangler

楼主#
更多 发布于:2014-11-27 20:38
HTTP Header Mangler是Firefox上的一款修改Http Header的轻量级扩展,采用配置文件方式管理重载,可以针对不同域名设置规则。扩展只有一个设置界面,用来选定规则文件和实时重载规则文件。

图片:gui.png



使用简介:

首先建立一个文本文件作为规则文件,位置可以自己选定。

然后在扩展设置页面选定规则文件位置,写入自定义的规则,点击update按钮就生效了。

重载规则文件也可以用鼠标手势或者快捷键来完成,用下面命令新建手势或者快捷键。
Services.obs.notifyObservers(null, 'se.patriarkatet.firefox.extensions.httpheadermangler@jetpack-cmdPressed', 'rules_file_update');


规则文件:

设置界面有简单的介绍,简单来说就是每个域名下写入一条或多条自定义规则,域名之间的规则用空行分开。

域名还支持正则,不过我不会,哪位高手会请指教下。


#设置网站首选语言
bing.com
Accept-Language=en-us
X-Forwarded-For=202.89.233.101
  
#改变Useragent
fm.baidu.com
User-Agent=Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
  
#破解图片反盗链
hoopchina.com.cn
Referer=http://bbs.hupu.com/
  
#伪装ip
yahoo.com
X-Forwarded-For=202.89.233.101



对Http Header的修改可以对不同域名自定义首选语言、Useragent和Referer等等,更多的可以参考Header Field Definitions
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度255点
  • 最爱沙发
  • 社区居民
  • 忠实会员
1楼#
发布于:2014-11-27 21:16
规则文件支持相对路径么?
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-09-16
  • 发帖数2677
  • 经验487枚
  • 威望1点
  • 贡献值116点
  • 好评度82点
  • 社区居民
  • 最爱沙发
  • 忠实会员
2楼#
发布于:2014-11-27 21:32
文科:规则文件支持相对路径么?回到原帖
应该不支持,我没试过。
规则文件路径保存在about:config里的extensions.se.patriarkatet.firefox.extensions.httpheadermangler@jetpack.rules_file项里,我不知道怎么改成相对路径的。
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度255点
  • 最爱沙发
  • 社区居民
  • 忠实会员
3楼#
发布于:2014-11-27 21:44
alanfly:应该不支持,我没试过。
规则文件路径保存在about:config里的extensions.se.patriarkatet.firefox.extensions.httpheadermangler@jetpack.rules_file项里...
回到原帖
那有时候要把火狐移动到别的电脑的时候麻烦了一点。
正则的话或许可以看一下http://www.jb51.net/tools/zhengze.html
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-09-16
  • 发帖数2677
  • 经验487枚
  • 威望1点
  • 贡献值116点
  • 好评度82点
  • 社区居民
  • 最爱沙发
  • 忠实会员
4楼#
发布于:2014-11-27 21:50
文科:那有时候要把火狐移动到别的电脑的时候麻烦了一点。
正则的话或许可以看一下http://www.jb51.net/tools/zhengze.html
回到原帖
以前看过学了点简单的,不过网站测试通过的正则写进规则里不生效。  
比如只匹配https://www.bing.com/,用下面的正则却不生效。
^https:\/\/www\.bing\.com\/$
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度255点
  • 最爱沙发
  • 社区居民
  • 忠实会员
5楼#
发布于:2014-11-27 22:00
alanfly:以前看过学了点简单的,不过网站测试通过的正则写进规则里不生效。  
比如只匹配https://www.bing.com/,用下面的正则却不生效。
^https:\/\/www\.bing\.com\/$
回到原帖
/$  应该不用吧。我对正则也是不怎么熟悉
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-09-16
  • 发帖数2677
  • 经验487枚
  • 威望1点
  • 贡献值116点
  • 好评度82点
  • 社区居民
  • 最爱沙发
  • 忠实会员
6楼#
发布于:2014-11-27 22:04
文科:/$  应该不用吧。我对正则也是不怎么熟悉回到原帖
去掉了也不生效阿。
$匹配结尾,前面的\/匹配最后的/,因为我只想在bing主页生效。
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度255点
  • 最爱沙发
  • 社区居民
  • 忠实会员
7楼#
发布于:2014-11-27 22:09
alanfly:去掉了也不生效阿。
$匹配结尾,前面的\/匹配最后的/,因为我只想在bing主页生效。
回到原帖

图片:BaiduShurufa_2014-11-27_22-8-58.png


图片:BaiduShurufa_2014-11-27_22-10-35.png


http://tool.oschina.net/regex
为什么测试的结果似乎没有问题呢
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-09-16
  • 发帖数2677
  • 经验487枚
  • 威望1点
  • 贡献值116点
  • 好评度82点
  • 社区居民
  • 最爱沙发
  • 忠实会员
8楼#
发布于:2014-11-27 22:30
文科:http://tool.oschina.net/regex
为什么测试的结果似乎没有问题呢
回到原帖
两种都不生效,bing的主页地址栏显示是https://www.bing.com,点击地址栏复制出来是https://www.bing.com/
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度255点
  • 最爱沙发
  • 社区居民
  • 忠实会员
9楼#
发布于:2014-11-27 22:35
alanfly:两种都不生效,bing的主页地址栏显示是https://www.bing.com,点击地址栏复制出来是https://www.bing.com/回到原帖
等别人吧,我也不太清楚了  ╮( ̄▽ ̄")╭
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-09-17
  • 发帖数1900
  • 经验1116枚
  • 威望1点
  • 贡献值232点
  • 好评度159点
10楼#
发布于:2014-11-27 23:35
因为这个是 on a per host basis
根据 host 来判断
而不是根据 url 来判断
看源码
是 httpChannel.originalURI.host.search(rule.match) !== -1
所以只能针对 bing.com、www.bing.com 这种域名做设置

如果需要针对整个 url 来做判断
那还是 mason 之类吧

privoxy 也只能对非 https 的请求做各种 header 修改
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-09-16
  • 发帖数2677
  • 经验487枚
  • 威望1点
  • 贡献值116点
  • 好评度82点
  • 社区居民
  • 最爱沙发
  • 忠实会员
11楼#
发布于:2014-11-27 23:54
aaaa007cn:因为这个是 on a per host basis
根据 host 来判断
而不是根据 url 来判断
看源码
是 httpChannel.originalURI.host.search(rule.match) !== -1
所以...
回到原帖
扩展简介里说支持正则的:Matching of hosts is done with either simple strings or regular expressions.
另外www\.bing\.com这样的是有效的,这应该也算正则吧?
https的header修改这个扩展倒是支持的。
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-09-17
  • 发帖数1900
  • 经验1116枚
  • 威望1点
  • 贡献值232点
  • 好评度159点
12楼#
发布于:2014-11-28 00:04
话说这个轻量是轻量
高效可是一点也不啊
每一次请求都需要遍历整套规则
另外规则也是按要修改http头的次数来总计的
不是按照域名数量来的
同一个域名要改2个头的话
就是2条规则
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-09-17
  • 发帖数1900
  • 经验1116枚
  • 威望1点
  • 贡献值232点
  • 好评度159点
13楼#
发布于:2014-11-28 00:12
alanfly:扩展简介里说支持正则的:Matching of hosts is done with either simple strings or regular expressions.
另外www\.bing\.com这样的是有效的,这应该也算正则...
回到原帖
www\.bing\.com
^www\.bing\.com$
都是正则

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search
search本身就是接受一个正则式做参数的
传字符窜 www.bing.com 进去会隐式转成正则式 /www.bing.com/
所以会有微妙的副作用……
因为 . 会匹配任意字符
去 web console 运行一下

"www.bing.com".search("www.bing.com")
"www1bing2com".search("www.bing.com")
可这第2个应该不是我们所期望的……
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-09-17
  • 发帖数1900
  • 经验1116枚
  • 威望1点
  • 贡献值232点
  • 好评度159点
14楼#
发布于:2014-11-28 00:15
>> 所以只能针对 bing.com、www.bing.com 这种域名做设置

所以规则中只能针对 url 中的 bing.com、www.bing.com 这些域名部分做设置(字符串或正则,具体见上一楼)

修正一下说法
上一页
游客

返回顶部