登錄表單工作正常,但是我提交的任何其他表單(如編輯或創建數據)我檢測到CSRF攻擊檢測到錯誤。我試圖清除symfony和瀏覽器緩存,刪除cookies,嘗試多個瀏覽器和多臺電腦。我每次提交表單時檢測到Symfony CSRF攻擊
這是什麼原因造成的?當我關閉CSRF保護時,它工作正常。
登錄表單工作正常,但是我提交的任何其他表單(如編輯或創建數據)我檢測到CSRF攻擊檢測到錯誤。我試圖清除symfony和瀏覽器緩存,刪除cookies,嘗試多個瀏覽器和多臺電腦。我每次提交表單時檢測到Symfony CSRF攻擊
這是什麼原因造成的?當我關閉CSRF保護時,它工作正常。
我每次過去,那是因爲我忘了渲染隱藏標籤在我的形式得到這個錯誤。不要忘了添加此行:
<?php echo $form->renderHiddenFields() ?>
很難用所提供的信息回答這個問題。以下是兩種可能性:
確保您在您的模板形式包括CSRF標記,並與表單提交它:
<?php echo $form['_csrf_token']->render(); ?>
我會去上肢體和猜測,登錄表單的作品,因爲你只是使用現成的SfGuard代碼,而在你自己的表單中,你從表單中省略了標籤....?
要進行檢查,你應該嘗試運行菲德勒在執行自檢,並檢查有效載荷%5B_csrf_token%5D = {} whateveryourtokenis。
如果您未呈現隱藏字段,則不會提交CSRF標記。 – 2010-10-28 08:09:15
把我放在改變會話ID的正確的直接... – Xosofox 2016-07-04 12:08:42