Gatling
문제가 발생했다.
개틀링으로 로그인하는 요청문을 레코드 한다음에 서버에 쐈더니, 401코드로 응답이 오면서 로그인되지 않았다.
# 마치 레코드했었던 요청문을 서버에 쐈을때, 서버는 요청문이 재사용되는것을 알고있는것처럼 동작했다.
테스트로 다른 사이트에 똑같이 테스트 해봤을때도 결과는 마찬가지였다.
테스트 및 구글링으로 알아낸것
# Fiddler request resend기능을 이용해서 로그인했었던 request문을 재전송 했을때는 로그인에 성공했다. Gatling과 무슨 차이였을까?
1) 특정 헤더의 값에 따라 서버가 유효한 request인지, 아니면 XSRF공격인지 판단하는듯 했다. =
Fiddler Composer기능을 이용해서 특정 request헤더를 임의의값으로 수정했을때 401에러가 떨어지는것을 확인했다.
다만, A사이트는 최초 요청문 전송시, 서버로부터 오는 해쉬값을 모든 요청문 헤더에 넣어야 했고(그래야 서버에서 유효하게 처리함)
B사이트는 최초 요청문 전송시 서버가 발급해주는 JSESSION ID를 파라미터로 전송해야 했다.
2) 그 헤더는 세션이 사라지면 서버에서 만료되는것 같다 =
Fiddler를 종료 후 다시 실행했을때, 로그인에 성공했었던 request문을 재전송한다면 로그인에 실패했다.
댓글