设置HTTP代理以插入标头

时间:2008-09-30 18:55:34

标签: apache proxy http-headers proxypass

我需要测试一些与客户端的HTTP交互,而不是修改。我需要测试的是当客户端的请求包含某个静态头时服务器的行为。

我认为运行此测试的最简单方法是设置一个HTTP代理,在每个请求上插入标头。设置它的最简单方法是什么?

7 个答案:

答案 0 :(得分:69)

我在开发环境中做了类似的事情,将端口80上的Apache配置为端口8080上我的应用服务器的代理,具有以下Apache配置:

NameVirtualHost *
<VirtualHost *>
   <Proxy http://127.0.0.1:8080/*>
      Allow from all
   </Proxy>
   <LocationMatch "/myapp">
      ProxyPass http://127.0.0.1:8080/myapp
      ProxyPassReverse http://127.0.0.1:8080/myapp
      Header add myheader "myvalue"
      RequestHeader set myheader "myvalue"   
   </LocationMatch>
</VirtualHost>

请参阅LocationMatchRequestHeader文档。

这会将标头 myheader:myvalue 添加到发送到应用程序服务器的请求中。

答案 1 :(得分:15)

您还可以安装非常容易安装的Fiddler(http://www.fiddler2.com/fiddler2/)(例如,比Apache更容易)。

启动后,它会将自己注册为系统代理。然后打开“规则”菜单,选择“自定义规则...”打开一个JScript文件,允许您自定义请求。

要添加自定义标头,只需在OnBeforeRequest功能中添加一行:

oSession.oRequest.headers.Add("MyHeader", "MyValue");

答案 2 :(得分:3)

我试试tinyproxy。事实上,最好的方法是在那里嵌入一种脚本语言......听起来像是Lua的完美工作,特别是在看到mysqlproxy

的效果之后

答案 3 :(得分:2)

我有同事使用Burp(“用于攻击和测试Web应用程序的交互式HTTP / S代理服务器”)。您也可以使用Fiddler(“HTTP调试代理”)。

答案 4 :(得分:1)

使用http://www.proxomitron.info并设置所需的标题等

答案 5 :(得分:1)

我没有使用代理,而是使用Firefox插件"Modify Headers"来插入标题(在我的情况下,使用单点登录假冒登录,以便我可以作为不同的人进行测试)。

答案 6 :(得分:0)

如果你的系统上有ruby,那么使用Sinatra的小型Ruby代理怎么样(确保安装Sinatra Gem)。这应该比设置apache更容易。代码可以找到here.