Je dois définir un cookie avant de lancer une demande sur un site Web utilisant Fiddler. Comment puis-je faire cela?
Simple … Vous devez définir une valeur d’en-tête, avec votre requête, comme ceci:
Cookie: YourCookieName=YourCookieValue
Pour ce faire, utilisez le moteur FiddlerScript , ajoutez le code suivant dans la méthode onBeforeRequest
:
oSession.oRequest["Cookie"] = (oSession.oRequest["Cookie"] + ";YourCookieName=YourCookieValue");
Cela préservera tous les autres cookies qui ont été définis.
Vous devez être plus précis sur ce que vous essayez de faire.
Vous pouvez modifier (ou append) un en-tête de cookie sortant pour envoyer un cookie au site Web. Vous pouvez le faire manuellement ou via le moteur FiddlerScript . Mais cela ne “définit” pas le cookie sur le client – il l’envoie simplement au serveur. Si vous souhaitez définir un cookie sur le client, vous devez soit utiliser un autre moyen, soit injecter un en-tête de réponse Set-Cookie sur une réponse précédente du serveur, avec la valeur que vous souhaitez définir sur le client.
Vous pouvez également utiliser le compositeur Fiddler.
C’est plus facile si vous pouvez commencer avec une autre demande à partir de votre site Web. Pour ce faire, capturez la requête que vous souhaitez modifier, puis faites-la glisser de l’interface utilisateur vers l’onglet compositeur.
Une bonne explication est ici: http://www.debugtheweb.com/Fiddler/help/composer.asp
Fiddler vous permet de renvoyer / reconstruire une requête existante. Il existe un Request Builder
. Lors de la reconstruction dans le formulaire RAW, modifiez vos cookies.
Cette solution est valable pour l’authentification basée sur les cookies:
Si vous souhaitez tester l’API / URL dont l’authentification est activée, veuillez suivre les instructions ci-dessous. Je vais vous montrer l’API Web MVC sur le serveur IIS. En général, il y a plus d’un cookie responsable de l’autorisation. Vous devrez donc envoyer plus d’un cookie dans l’en-tête comme suit:
User-Agent: Fiddler Host: localhost:51000 content-Type: application/json Cookie : .ASPXAUTH=xxxxx;ASP.NET_SessionId=yyyy;__RequestVerificationToken=zzzz
Lorsque vous exécutez Fiddler en tant que proxy inverse, vous pouvez modifier les en-têtes de réponse via FiddlerScript en ajoutant une ligne dans la méthode OnBeforeResponse:
static function OnBeforeResponse(oSession: Session) { // ... oSession.oResponse["Set-Cookie"] = "sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT"; }
Vérifiez également la documentation de Fiddler sur la modification d’une demande ou d’une réponse pour plus d’informations.