http, https и cookies

Ragnarok
На сайте с 25.06.2010
Offline
239
586

Приветствую.

Есть сайт на CraftCMS, на момент разработки он работает и по http:// и по httpS://

Для защиты от CSRF он использует куку CRAFT_CSRF_TOKEN, но она работает как-то странно:

если открыть сайт по http:// то кука добавится с флажком "HTTP" и без флажка "Secure"

формы отправляются, всё ок

если открыть сайт по httpS:// то кука добавится с флажком "HTTP", но уже с пометкой "Secure"

формы всё так же работают

если после этого опять открыть сайт по http://, то этой куки не будет. И она не появится, пока живёт кука у httpS:// версии.

И я не понимаю, это нормальное поведение браузера, или что-то в настройках движка, или куда копать?

//TODO: перестать откладывать на потом
Оптимизайка
На сайте с 11.03.2012
Offline
396
#1
Ragnarok:
если открыть сайт по httpS:// то кука добавится с флажком "HTTP", но уже с пометкой "Secure"
формы всё так же работают если после этого опять открыть сайт по http://, то этой куки не будет.

Ну так все нормально. Если у куки стоит признак "secure" это значит, что доступ к ней возможен только через https.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Secure_and_HttpOnly_cookies

Если вам надо чтобы кука была доступна по обеим протоколам, не ставьте "secure"

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
Ragnarok
На сайте с 25.06.2010
Offline
239
#2
Оптимизайка:
Если вам надо чтобы кука была доступна по обеим протоколам, не ставьте "secure"

спасибо, я примерно так и предполагал.

просто получается что при httpS движок "переписывает" куку, добавляя secure, из-за чего простой http не может ни прочитать её, ни создать свою

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий