Symfony2 보안의 방화벽 기능인 Curl은 양식 제출 오류 보고를 시뮬레이션합니다.
PHP中文网
PHP中文网 2017-05-16 16:44:15
0
1
431

안녕하세요 여러분, 업무상 실제 양식 제출 대신 컬 시뮬레이션 양식을 사용합니다. 그런데 시스템 로그에 인증에 성공했다고 표시되면 점프 중 오류가 발생합니다.

으아악

시뮬레이션 코드는 다음과 같습니다.

구성 파일은 양식 제출과 동일하며 둘 다 logintest입니다
그러나 양식 제출 결과는 올바른데 컬 시뮬레이션이 올바르지 않습니다. 로그 끝에서 토큰을 얻지 못하고 바로 logintest로 돌아가는 것을 볼 수 있습니다.
내 질문은 컬 시뮬레이션과 실제 양식 제출의 차이점은 무엇입니까? 또한 심포니는 제출 시간을 어떻게 모니터링합니까? 해결책을 찾고 계시는 모든 분들께 감사드립니다.

PHP中文网
PHP中文网

认证0级讲师

모든 응답 (1)
过去多啦不再A梦

在 Symfony 中,Form 会自动添加一个 CSRF TOKEN (默认名称为 _token) 的隐藏域,用来防上非法提交,当表单被提交时,系统会先检测 _token 的有效性,因此题主你用 CURL 提交时,必需手动加入 _token,手动生成 CSRF TOKEN:

$intention = 'test string'; $csrf = $this->get('form.csrf_provider');

生成 CSRF TOKEN,并:

$post_data['_token'] = $csrf->generateCsrfToken($intention);

表单提交时检测 CSRF 是否有效:

$token = $request->get('_token'); if( $csrf->isCsrfTokenValid($intention, $token) ) { return new Response('CSRF Token Invalid'); } return new Response('Success');

或者,你可以直接在 configureOptions 禁用 CSRF:

$resolver->setDefaults(array( 'csrf_protection' => true ));
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!