2008-09-30 8 views
37

Мне нужно протестировать некоторые HTTP-взаимодействия с клиентом, которые я бы предпочел не изменять. То, что мне нужно проверить, - это поведение сервера, когда запросы клиента включают определенный статический заголовок.Настройте HTTP-прокси для вставки заголовка

Я думаю, что самый простой способ запустить этот тест - настроить HTTP-прокси, который вставляет заголовок для каждого запроса. Какой будет самый простой способ настроить это?

ответ

59

я сделать что-то подобное в моей среде разработки путем настройки Apache на порт 80 в качестве прокси-сервера для моего сервера приложений на порту 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 к запросам, отправляемым на сервер приложений.

+11

Он также добавит myheader: myvalue к заголовкам ответов. Полный документ для Apache mod_headers: http://httpd.apache.org/docs/current/mod/mod_headers.html – 2012-03-05 10:18:47

+1

@Fred: Итак, как мы ограничиваем заголовки появляться только в прокси-запросе? – 2013-03-29 08:42:09

3

Я бы попробовал tinyproxy. на самом деле, Вея лучше бы возможность размещения языка сценариев там ... звучит как идеальную работу для Lua, особенно после того, видя, насколько хорошо он работал на mysqlproxy

2

Я имел сослуживцев, которые использовали Burp (» интерактивный прокси-сервер HTTP/S для атаки и тестирования веб-приложений »). Вы также можете использовать Fiddler («HTTP-отладочный прокси»).

14

Вы также можете установить Fiddler (http://www.fiddler2.com/fiddler2/), который очень прост в установке (проще, чем Apache, например).

После запуска он зарегистрируется как системный прокси. Затем откройте меню «Правила» и выберите «Настроить правила ...», чтобы открыть JScript-файл, который позволяет настраивать запросы.

Чтобы добавить пользовательский заголовок, просто добавьте строку в функции OnBeforeRequest:

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

Вместо того чтобы использовать прокси-сервер, я использую плагин Firefox "Modify Headers" для вставки заголовков (в моем случае, подделать войдите с помощью единого входа, чтобы я мог тестировать себя как разные люди).

0

Если у вас есть рубин на вашей системе, как насчет небольшого прокси-сервера Ruby с помощью Sinatra (обязательно установите Sinatra Gem). Это должно быть проще, чем установка apache. Код может быть найден. here.