각 페이지에는 CSRF 보호를위한 Zend_Form_Element_Hash가있는 3 개의 양식이 포함되어 있습니다.Zend Hash 세션 변수가 양식 제출 후 손실
문제는 그 중 2 개가 CSRF와 잘 작동하지만 다른 하나는 해시에 문제가 있다는 것입니다.
처음 제출할 때 "missingToken"오류가 반환됩니다. (보기에서
: 다시 제출하려고하면 그 후, 그것은
내가 무슨 일이 있었는지 볼 수있는 위해서 var_dump ($ _ SESSION)를 만들어 출력이 있었다 .... 잘 작동 양식)를 만들 때 :array(7) {
...
["__ZF"]=>
array(3) {
["Zend_Form_Element_Hash_routeSearch_csrf"]=>
array(2) {
...
}
["Zend_Form_Element_Hash_registration_csrf"]=>
array(2) {
...
}
["Zend_Form_Element_Hash_login_csrf"]=>
array(2) {
...
}
}
["Zend_Form_Element_Hash_routeSearch_csrf"]=>
array(1) {
["hash"]=>
string(32) "2e348e982e5d8849a7bcb3f42fdd6c0d"
}
["Zend_Form_Element_Hash_registration_csrf"]=>
array(1) {
["hash"]=>
string(32) "6fd74223bb158cc3cc780ee29b26ae58"
}
["Zend_Form_Element_Hash_login_csrf"]=>
array(1) {
["hash"]=>
string(32) "d07dc1ac514082f1960c300670414399"
}
}
을 한 후 제출
array(6) {
...
["__ZF"]=>
array(2) {
["Zend_Form_Element_Hash_login_csrf"]=>
array(2) {
...
}
["Zend_Form_Element_Hash_routeSearch_csrf"]=>
array(2) {
...
}
}
["Zend_Form_Element_Hash_login_csrf"]=>
array(1) {
["hash"]=>
string(32) "d07dc1ac514082f1960c300670414399"
}
["Zend_Form_Element_Hash_routeSearch_csrf"]=>
array(1) {
["hash"]=>
string(32) "b9378bec2fd18cf232f451ed602acf0a"
}
}
보시다시피, "Zend_을 Form_Element_Hash_registration_csrf "가 사라졌습니다.
내가 아는 모든 것을 시도했지만 세션을 사라지게 만들 수있는 것을 찾지 못했습니다 ... 어떤 아이디어입니까? 젠드가 뭘 할 수 있었 니?
덧붙여서, 2 개의 폼이 같은 Controller에 의해 다른 Action로로드됩니다 (그 중 1 개가 문제가있는 폼입니다). 세션이 사라지는 이유가 될 수 있습니까?
더 이상 문제를 찾기 위해 무엇을해야할 지 모르겠으니 도움주세요. 여기 붙어 있네. = S.
은 ------ 수정 ------
좋아, 나는 ... 문제가 발생할 때 양식의, Ajax 요청을하고 있다는 것입니다 어떤이의 원인 발견 CSRF 해시가 만료됩니다 (홉 = 1).
누구나 CSRF + AJAX 호출이있는 양식을 사용하는 해결책을 알고 있습니까?