设置HTTP代理以插入标头

时间:2020-03-06 14:56:26  来源:igfitidea点击:

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

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

解决方案

我会尝试tinyproxy。实际上,最好的办法是在其中嵌入脚本语言……对于Lua来说,这似乎是一项完美的工作,尤其是在看到它对mysqlproxy的工作情况之后

我有一些同事为此使用了Burp("用于攻击和测试Web应用程序的交互式HTTP / S代理服务器")。我们也许还可以使用Fiddler(" HTTP调试代理")。

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

我在开发环境中通过将端口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>

请参阅LocationMatch和RequestHeader文档。

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

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

启动后,它将自己注册为系统代理。然后打开"规则"菜单,然后选择"自定义规则..."以打开一个JScript文件,该文件可让我们自定义请求。

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

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