分类: 杂念 |
最近在 Desktop Web System
中新增了一种开发需求,各种浏览器或至少是最流行的三种浏览器,在访问网站时向服务器发送
User-Agent 时必须带上某种标识。
浏览器往服务器发送 User Agent
信息,作为开发、调试或使用中的标识,有时候我们需要修改 User Agent
达到各种目的。
常见的手工操作的方法如下,虽然比较笨但也算有效:
Internet Explorer 使用 regedit
注册表编辑器找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet
Settings\5.0\User Agent 位置,修改或增加相应字符串。
Mozilla Firefox 打开 Firefox 后在地址栏输入 about:config
可以修改general.useragent.extra.firefox 或增加
general.useragent.override 字段。
Opera 打开 Opera 后在地址栏输入 opera:config 可以修改 User
Agent 相关字段。或者从菜单 Tools -> Quick Preferences -> Edit
site preferences -> Network -> Browser identification
挑选定义好的项,按 F12 可略过前面两步。
只是这三种浏览器的方法均为手工操作的,有时候并不是特别理想。还有一些软件可以实现修改,比如微软自己的
User Agent String Utility 但不是自由修改,还有类似Proxy Switcher
软件的思路实现修改 User-Agent,但要设置代理服务器属性等。
想过 LSP(Windows Socket Layered Service Provider
分层服务提供商)或一个朋友提出的 NDIS(Network Driver Interface
Specification
网络驱动程序接口规范)方案,但做为驱动层的东西,一方面要兼容性好,另一方面技术难度也相对更高。再加上这两年
LSP
技术泛滥,很多恶意软件用来劫持浏览器,导致很多杀毒厂商及木马查杀工具对
LSP 特别敏感,所以也不敢轻举望动。
有一种思路是通过 Sniffer 直接篡改,也许大家对这层可能觉得更复杂,主要我是见过我有一个朋友做过一个小工具叫 Nettool,他就不是驱动层的,他做到了直接篡改数据包并返回假信息,用于阻止正常的 HTTP 包通过。不过这种性质也有一定风险,我发现在 2000 或 XP 下,使用无线网卡时,他无法正常 Sniffer 到数据。另外他给我的源码包早就不知道丢哪去了,还得再找找这位朋友能否联系上。
有一种思路是通过 Sniffer 直接篡改,也许大家对这层可能觉得更复杂,主要我是见过我有一个朋友做过一个小工具叫 Nettool,他就不是驱动层的,他做到了直接篡改数据包并返回假信息,用于阻止正常的 HTTP 包通过。不过这种性质也有一定风险,我发现在 2000 或 XP 下,使用无线网卡时,他无法正常 Sniffer 到数据。另外他给我的源码包早就不知道丢哪去了,还得再找找这位朋友能否联系上。
当然还有一种感觉更危险,不过有位朋友说这种方法更可靠,就是注入进这几个常见的浏览器进程去修改变量。
怎么样能做到,既安全、又稳定,而且又是动态的呢?并且不希望扯上病毒厂商这些复杂的关系,江湖水太深,只想踏踏实实做好自己的软件!
前一篇:任天堂Wii算奢侈品吗?
后一篇:VISTA 问题