Symfony에서 CSRF 보호가 활성화 된 양식을 테스트하기위한 기능 테스트를 만드는 가장 좋은 방법은 무엇입니까?symfony에서 CSRF가 활성화 된 기능 테스트 양식
현재 I는 각 양식의 submittion 앞에 다음 코드를 추가해야합니다 :
다음$form = new sfGuardFormSignin();
$token = $form->getCSRFToken();
$token_name = $form->getCSRFFieldName();
나는 추가 토큰 $와 같은 매개 변수를 형성 $ TOKEN_NAME :이 옵션은에 제안
call('/login', 'POST', array (
'signin' =>
array (
'username' => $username,
'password' => $password,
$token_name => $token,
)))
을 문서 :
'_with_csrf' => true,
전혀 작동하지 않습니다.
수동으로 테스트 한 각 양식에 토큰을 추가하지 않으려면 더 간단한 방법이 있습니까? 아니면 테스트를 실행할 때 csrf 점검을 끄는 방법이 있습니까?
위에서 설명한 방법은 1-2 개의 폼을 테스트해야 할 때 괜찮습니다.하지만 프로젝트에 수십 개의 고유 한 폼이 포함되어 있으면 고통이됩니다.
T 그 문서 옵션은 BaseForm의 인스턴스를 사용하여 확장합니다. CSRF 토큰은 양식 유형을 사용하여 생성되기 때문에 MyFooForm! = BaseForm 따라서 옵션이 실패하는 이유입니다 ... 옵션은 내 프로젝트에서도 그렇게했습니다. – richsage
실패하는 또 다른 이유가 있습니다. csrf 토큰을 매개 변수 목록에 추가하지만 대개 배열 형태입니다 (위의 예제와 같이). 따라서 완전히 쓸모가 없습니다 :-(. 귀하의 의견을 보내 주셔서 감사합니다. – Stepashka