2014-11-18 2 views
1

jMeter 테스트를 처음 사용했습니다. UI에서 필드 업데이트를 테스트하고 싶습니다. 따라서 테스트를 실행할 때 CSRF 유효성 검사 오류가 발생합니다. 어떻게 해결할 수 있습니까? 다음과 같이 샘플러 결과는 그리고jMeter 테스트에서 허가되지 않은 CSRF 검증이 실패했습니다.

enter image description here

로 내 시험 계획은

Thread Name: Thread Group 1-1 
Sample Start: 2014-11-18 23:37:49 IST 
Load time: 688 
Latency: 688 
Size in bytes: 483 
Headers size in bytes: 457 
Body size in bytes: 26 
Sample Count: 1 
Error Count: 1 
Response code: 401 
Response message: Unauthorized : CSRF validation failed 

Response headers: 
HTTP/1.1 401 Unauthorized : CSRF validation failed 
Date: Tue, 18 Nov 2014 18:08:07 GMT 
Server: Apache/2.4.7 (Ubuntu) 
X-Powered-By: PHP/5.5.9-1ubuntu4.5 
Expires: Sun, 19 Nov 1978 05:00:00 GMT 
Last-Modified: Tue, 18 Nov 2014 18:08:07 +0000 
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0 
ETag: "1416334087" 
Vary: Accept 
Content-Length: 26 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: application/json 

우리는 왜 CSRF 유효성 검사 오류를 얻는 방법을 해결하기 위해, 보인다.

답변

5

CSRF는 Cross-site request forgery을 나타내며 필수 동적 요청 매개 변수 (일반적으로 쿠키 또는 헤더)가 누락되어 CSRF 유효성 검사 오류가 발생합니다.

Firefox BrowserHttpFox 또는 FireBug 확장을 사용하도록 설정하고 요청 세부 정보를 검사 할 것을 제안합니다. CSRF 토큰은 일반적으로 서버의 응답에서 쿠키로 제공되며 헤더 또는 요청 매개 변수로 전달되어야합니다. 따라서 일반적인 상관 관계와 유사합니다. 그래서 같이 보일 것입니다 흐름은 다음과 같습니다

  1. 먼저 HTTP 요청을 : 열린 첫 페이지 응답에서
  2. 추출 CSRF 토큰을 다음 포스트 프로세서 중 하나를 통해
  3. 초 HTTP 요청 : 두 번째 페이지 열기 (CSRF 보호). 다음 중 하나에 2 단계에서 추출 된 토큰을 추가

서버가 토큰이 거주 할 것으로 예상 위치에 따라.

미래에는 "localhost"서버 이름을 살펴보십시오. 응용 프로그램이있는 컴퓨터에서 JMeter 성능 테스트를 실행하지 마십시오.

+0

방화 광 확장 프로그램을 사용하여 작업을 시도하고 상태를 알려 드리겠습니다. – Vinod

+0

로컬 호스트에서 작업하지 않고 별도의 테스트 서버가 있습니다. 요청했지만 어떻게 CSRF 토큰 응답을 추출 할 수 있습니까 (2 단계). Iam은 블레이즈 미터 플러그인을 사용하므로 "X-CSRF-Token"을 포함한 모든 헤더 세부 정보를 볼 수 있습니다. HTTP 헤더 관리자를 step1에 추가했습니다. 제발 어떻게 도와 드릴까요? – Vinod

+0

토큰을 추출하여 서버에 전달하는 가장 좋은 방법을 제안하고 제안 할 수 있도록 녹음 내용을 확인해야합니다. –

관련 문제