2013-01-17 4 views
3

POST 요청을 테스트하는 자동화 기능이 있다고 가정 해보십시오. 이 POST 요청은 Rails 빌드 CSRF 보호로 인해 CSRF 토큰이 포함되지 않으면 작동하지 않습니다.자동화의 CSRF

이 경우 자동화를 실행하는 가장 좋은 방법은 무엇입니까?
모든 비 GET 요청에 CSRF 토큰을 포함시켜야합니까? ('예'일 경우 '어떻게?')
아니면 자동화 기능에 CSRF 보호를 사용하지 않도록 설정하는 것이 더 낫습니까?

고맙습니다.

답변

1

는 당신이 처음부터 그 질문을했다 모르겠어요,하지만 난 그것을

짧은 대답은 당신이 사용하기 위하여려고하고있는 도구 달려 있다는 것입니다 :) 대답 기쁘다 자동화 테스트. 대답의 태그 (오이와 오이)에 도구를 사용하려는 경우이 도구는 브라우저를 직접 자동화하므로 예상대로 작동합니다.

이것은 CSRF 토큰 확인이 실제 사용자를 위해 작동하는 경우 테스트가 실제 사용자와 비슷하게 작동한다는 것을 의미합니다. 실제 테스트에서는 자동 테스트에서도 작동합니다. 이 테스트를 통해 수동으로 POST 요청을하지는 않겠지 만 적어도 웹 페이지에서 양식을 작성하고 양식을 제출하면 Rails에서 생성 된 CSRF 토큰도 제출된다는 것을 의미합니다. 모든 것이 훌륭하고 멋쟁이가 될 것입니다.

그러나 이상한 이유로 수동으로 POST 요청을 작성해야한다면 test 환경에 대한 CSRF 검사를 비활성화해야합니다.

+0

답변을 읽어 주셔서 감사합니다. (예, 저는 오이와 watir를 사용하고 수동 POST 요청이 많습니다. – ted

+0

Watir로 테스트 할 때 수동 POST 요청을해야하는 이유는 무엇입니까? 수동으로 세션 쿠키를 보내는 것인가? 만약 그렇게하면 Rails가 일부 뷰를 렌더링하게 할 것이다. 그렇다면 페이지에서 CSRF 토큰 값을 가져올 수도있다. 이것은''''meta'''로 설정된다. '태그와 또한 모든 양식에''''hidden'''' 필드로 사용합니다. 내 대답이 당신을 만족 시킨다면, 또한 받아 들인 대답으로 설정하십시오, 감사합니다 :) –

관련 문제