web-dev-qa-db-fra.com

Configurer un proxy HTTP pour insérer un en-tête

Je dois tester une interaction HTTP avec un client que je préfère ne pas modifier. Ce que j'ai besoin de tester, c'est le comportement du serveur lorsque les demandes du client incluent un certain en-tête statique.

Je pense que le moyen le plus simple d’exécuter ce test consiste à configurer un proxy HTTP qui insère l’en-tête à chaque demande. Quel serait le moyen le plus simple de le configurer?

42
Logan

Je fais quelque chose comme cela dans mon environnement de développement en configurant Apache sur le port 80 en tant que proxy pour mon serveur d'applications sur le port 8080, avec la configuration Apache suivante:

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>

Voir LocationMatch et RequestHeader documentation.

Cela ajoute l’en-tête myheader: myvalue aux demandes adressées au serveur d’applications.

65
Peter Hilton

Vous pouvez également installer Fiddler ( http://www.fiddler2.com/fiddler2/ ) qui est très facile à installer (plus facile qu’Apache par exemple).

Après l'avoir lancé, il s'enregistrera comme proxy système. Ouvrez ensuite le menu "Règles" et choisissez "Personnaliser les règles ..." pour ouvrir un fichier JScript permettant de personnaliser les demandes.

Pour ajouter un en-tête personnalisé, ajoutez simplement une ligne dans la fonction OnBeforeRequest:

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

je voudrais essayer tinyproxy . En fait, le mieux serait d’y intégrer un langage de script ... Cela semble être un travail parfait pour Lua , surtout après avoir constaté son efficacité pour mysqlproxy

3
Javier

Certains de mes collègues ont utilisé Burp ("un serveur proxy HTTP/S interactif pour attaquer et tester des applications Web"). Vous pourrez également utiliser Fiddler ("un proxy de débogage HTTP").

2
Kevin Hakanson

Utilisez http://www.proxomitron.info et configurez l’en-tête souhaité, etc.

1
Eduardo

Si vous avez Ruby sur votre système, que diriez-vous d’un petit proxy Ruby utilisant Sinatra (assurez-vous d’installer le Sinatra Gem). Cela devrait être plus facile que de configurer Apache. Le code peut être trouvé ici.

0
John Bowers

Plutôt que d'utiliser un proxy, j'utilise le plugin Firefox "Modify Headers" pour insérer des en-têtes (dans mon cas, simuler une connexion à l'aide de Single Sign On afin que je puisse tester différentes personnes).

0
Paul Tomblin