Wie der lange Titel schon sagt. Ich habe eine API zum Aufrufen aus einer Vue.js-Anwendung mit Spring Boot erstellt. Es wurde beschlossen, einen Auslastungstest dieser API durchzuführen. Ich verwende JMeter, um ein Szenario zu erstellen, aber da ich CSRF-Maßnahmen mit dem "CookieCsrfTokenRepository" von Spring Security verwende.
Deshalb mussten wir das im Szenario tun.
Nur das Bild sieht so aus.
url | HTTP-Methode | Überblick |
---|---|---|
/login | POST | ID/Passwort senden, um sich anzumelden Nach erfolgreicher Anmeldung XSRF-TOKEN Cookie wird gegebenNicht der CSRF-Prüfung unterworfen |
/orders | POST | Registrieren Sie eine Bestellung CSRF-Prüfziel |
Die Antwort von / login
enthält das Cookie von XSRF-TOKEN
, also werden wir es extrahieren.
Wenn man sich die Antwort von / login
in DevTools ansieht, sieht es vorerst so aus.
Aufrufe von "/ login" werden im "HTTP Request" -Sampler definiert. (Details weggelassen) Verwenden Sie nach dem Ausführen dieses Samplers "Regular Expression Extraction", um ein CSRF-Token zu erhalten.
HTTP Request
Sampler in / login
und klicken Sie mit der rechten MaustasteADD
→ Post Processors
→ Regular Expression Extractor
Ist das der Punkt? In nachfolgenden Szenarien können Sie "$ {xsrf_token}" angeben, um den aus der Variablen extrahierten Wert aufzulösen.
Da / orders
einer CSRF-Prüfung unterliegt, muss zum Zeitpunkt des Aufrufs der Header X-XSRF-TOKEN
gesetzt werden.
Aufrufe von / orders
werden im Sampler HTTP Request
definiert. (Details weggelassen)
Verwenden Sie zum Ausführen dieses Samplers den HTTP-Header-Manager, um den X-XSRF-TOKEN-Header festzulegen.
ADD
→ Config Element
→ HTTP Header Manager
Das zuvor erhaltene "$ {xsrf_token}" wird als "X-XSRF-TOKEN" -Header gesetzt.
Mit den obigen Einstellungen können Sie die CSRF-Maßnahmen übergeben. Wenn Sie JMeter noch nicht kennen, können Sie sich eine so kleine Anwendung nicht sofort vorstellen. Ich dachte, es wäre ärgerlich (es ist meine ungewohnte Erfahrung), also schrieb ich es auf.
Ich bezog mich auf Folgendes. Vielen Dank.
https://www.blazemeter.com/blog/how-load-test-csrf-protected-web-sites
Recommended Posts