[JAVA] Einstellungen beim Aufrufen der API mithilfe von CSRF-Maßnahmen von Spring Security in JMeter

Was du machen willst

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.

Grobe Spezifikationen der zu testenden API

Nur das Bild sieht so aus.

url HTTP-Methode Überblick
/login POST ID/Passwort senden, um sich anzumelden
Nach erfolgreicher AnmeldungXSRF-TOKENCookie wird gegeben
Nicht der CSRF-Prüfung unterworfen
/orders POST Registrieren Sie eine Bestellung
CSRF-Prüfziel

Umgebung

Anwendung

Werkzeug

JMeter-Einstellungen

Holen Sie sich den Wert von XSRF-TOKEN

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.

XSRF-TOKEN.jpg

Aufbau

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.

Verfahren
  1. Wählen Sie den HTTP Request Sampler in / login und klicken Sie mit der rechten Maustaste
  2. Wählen Sie ADD Post ProcessorsRegular Expression Extractor
  3. Stellen Sie Folgendes ein (Name und Kommentare sind angemessen) csrfトークン取得.jpg

Ist das der Punkt? In nachfolgenden Szenarien können Sie "$ {xsrf_token}" angeben, um den aus der Variablen extrahierten Wert aufzulösen.

Setzen Sie den X-XSRF-TOKEN-Header

Da / orders einer CSRF-Prüfung unterliegt, muss zum Zeitpunkt des Aufrufs der Header X-XSRF-TOKEN gesetzt werden.

Aufbau

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.

Verfahren
  1. Wählen Sie den Sampler "HTTP Request" in "/ orders" aus und klicken Sie mit der rechten Maustaste
  2. Wählen Sie ADD Config ElementHTTP Header Manager
  3. Stellen Sie Folgendes ein (Name und Kommentare sind angemessen, Inhaltstyp wird festgelegt, da dies in dieser API-spezifischen Spezifikation erforderlich ist).

X-XSRF-TOKEN付与.jpg

Das zuvor erhaltene "$ {xsrf_token}" wird als "X-XSRF-TOKEN" -Header gesetzt.

Zusammenfassung

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.

Referenzseite

Ich bezog mich auf Folgendes. Vielen Dank.

https://www.blazemeter.com/blog/how-load-test-csrf-protected-web-sites

Recommended Posts

Einstellungen beim Aufrufen der API mithilfe von CSRF-Maßnahmen von Spring Security in JMeter
[Schienen] Beachten Sie bei der Verwendung von Ajax die "CSRF-Maßnahmen".
Unbekannter Fehler in Zeile 1 von pom.xml bei Verwendung von Spring Boot in Eclipse
Testen Sie den Antwort-JSON der von Spring MVC mit AssertJ mit MockMvc erstellten REST-API
Erstellen Sie eine API-Schlüsselauthentifizierung für die Web-API in Spring Security
Einstellungen beim Aufrufen der API mithilfe von CSRF-Maßnahmen von Spring Security in JMeter
Implementieren Sie die REST-API mit Spring Boot
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).
Implementieren Sie die REST-API mit Spring Boot und JPA (Infrastructure Layer).
Aufrufen und Verwenden der API in Java (Spring Boot)
Erstellen Sie eine API zum Senden und Empfangen von Json-Daten mit Spring
Implementieren Sie die REST-API mit Spring Boot und JPA (Domain Layer Edition).
Feder mit Kotorin --4 REST API Design
So übergeben Sie einen Proxy, wenn Sie REST mit SSL in Java auslösen
Authentifizieren Sie 3 oder mehr Parameter im JSON-Format mit Spring Security
Beispiel für eine minimale RESTful-API-Konfiguration mit Jersey + Spring Framework
JMeter Memorandum [Einstellungen beim Abtasten von mehrteiligen / Formulardaten in einer Java-Anwendung]
Melden Sie sich mit HttpServletRequest # in Spring Security in der Servlet 3.x-Umgebung an
Spring Security-Nutzungsnotiz CSRF
Versuchen Sie es mit Spring Boot Security