2015-05-09 11 views
0

У меня возникла проблема с компонентом CSRF, так как я обновился до последней версии 3.0.4 CakePHP. Похоже, есть исправление безопасности для предыдущих версий, так что я решил обновить как только possibile, но с тех пор я имею эту ошибку, когда я пытаюсь войти в мое приложение:CakePHP 3.0.4 и недопустимый токен CSRF

Invalid CSRF token. 

Как ни странно, у меня есть видел смешное поведение, пытаясь выяснить, что происходит:

1) Я пошел к своему AppController.php, установить безопасный вариант для CSRF компонента к ложным, то я входа в систему -> он работает

2) Установите эту опцию в true и войдите снова -> она работает

3) В (хром) в режиме инкогнито, попробуйте войти оттуда -> он выходит из строя (недействительный маркер CSRF)

4) После провала инкогнито, попытайтесь снова войти с -не инкогнито режим- -> он работает

Глядя на documentation Я думал, что для этого и использования стандартного помощника формы будет достаточно ... мне нужно что-то еще? Все работало правильно с версией 3.0.2, которую я использовал раньше.

+0

Я только что испек новое приложение и сделал это, но не смог воспроизвести вашу ошибку. Как вы думаете, что может быть иначе? –

+0

На самом деле я действительно понятия не имею. Если это может помочь, я разрабатываю это приложение с RC1, и я постоянно обновляю его до сих пор ... как вы думаете, это может быть что-то связанное с одним из моих файлов конфигурации? –

+0

Я испекли новое приложение, использующее 3.0.4, объединив папки src и webroot, но я столкнулся с той же проблемой. Во всяком случае, _csrfToken выглядит правильно установлен в панели запроса DebugKit в ... Это вся ошибка: Invalid CSRF токен. Errore: Запрошенный адрес '/ sviluppo/users/login' не найден на этом сервере. –

ответ

2

Флаг secure в компоненте t Csrf означает, что cookie будет установлен только при использовании https (безопасного) соединения. Если форма не сгенерирована и отправлена ​​по https, она блокирует попытку.

+0

Хорошо, тогда это почему он терпел неудачу ... Я все еще разрабатываю свое приложение, и нет https. Я думаю, что это должно быть объяснено более четко в документации компонента csrf ... в любом случае, большое спасибо! –

Смежные вопросы