폼키 충돌 때문에 카트 페이지에서 갱신 페이지가 작동하지 않습니다.
-
29-09-2020 - |
문제
구성 : varnish + pageCache 모듈, 모든 페이지를 www로 리디렉션하십시오.htaccess
이슈 : 누군가가 아닌 비 www 페이지에 언제든지 PageCache_FormKey 쿠키가 저장됩니다.그런 다음 그들은 www로 리디렉션됩니다.다른 PageCache_FormKey 쿠키는 저장되지만 다른 값으로 저장됩니다.
내 코드에는 form 키가 있습니다.
<form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
<?php echo $this->getBlockHtml('formkey'); ?>
.
를 시도한 것 :
<form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>"/>
.
Mage::getSingleton('core/session')->getFormKey()
가 두 번째 form 키를 출력하는 것처럼 여전히 작동하지 않습니다.첫 번째 pageCache_FormKey를 삭제하면 작동합니다.
checkout/cart/updatePost
에서 fableKey 확인을 어떻게 바이 패스 할 수 있습니까?
(이것은 내 테마와 아무 관련이 없으며 기본 테마가 발생합니다. 그래서 PageCache 모듈이 바니시 응용 프로그램간에 설정되어 있음을 연결하는 문제라고 생각합니다.)
해결책
솔루션은 checkout_cart_updatePost
이벤트에서 FampteKey 유효성 검사를 비활성화하는 것이 었습니다.
function disableCsrf($observer)
{
$events = array(
'checkout_cart_updatePost',
);
$route = $observer->getEvent()->getControllerAction()->getFullActionName();
if (in_array($route, $events)) {
$key = Mage::getSingleton('core/session')->getFormKey();
Mage::app()->getRequest()->setParam('form_key', $key);
}
}
.
SupportDesk_CartFormKey
모듈과 동일합니다.
제휴하지 않습니다 magento.stackexchange