Действительно ли возможно получить путь сохраненного cookie?

Быстрый вопрос: можно установить путь, где cookie допустим, но также возможно быть (считанным) этот путь из cookie (в PHP)?

Или иначе: действительно ли возможно расширить время cookie, не зная то, что соединяет каналом, это идет (но хранение пути то же)?

7
задан Gumbo 17 November 2010 в 10:02
поделиться

4 ответа

Поскольку большинство браузеров по-прежнему используют спецификацию Netscape (см. кешированную версию http://wp.netscape.com/newsref/std/cookie_spec.html ), а не ту, которая указана в RFC 2109 или RFC 2965 , элементы списка в поле заголовка запроса Cookie будут состоять только из пары имени и значения:

При запросе URL из HTTP-сервер, браузер сопоставляет URL-адрес со всеми файлами cookie, и если какие-либо из них совпадают, в HTTP-запрос будет включена строка, содержащая пары имя / значение всех совпадающих файлов cookie. Вот формат этой строки:

 Cookie: NAME1 = OPAQUE_STRING1; NAME2 = OPAQUE_STRING2 ... 
 

Только новые спецификации (RFC 2109 и RFC 2965) позволяют клиенту отправлять путь в запросе (выдержка из RFC 2109):

Синтаксис заголовка это:

 cookie = "Cookie:" версия cookie 
1 * ((";" | ",") значение cookie) 
значение cookie = ИМЯ "=" ЗНАЧЕНИЕ [ ";" дорожка] [";" домен] 
cookie-version = "$ Version" "=" значение 
NAME = attr 
VALUE = value 
path = "$ Path" "=" значение 
domain = "$ Domain" "=" значение 
  

[…] Значение для атрибут path должен быть значением из атрибута Path, если таковой имеется, соответствующего заголовка ответа Set-Cookie. В противном случае атрибут следует опустить в заголовке запроса cookie. […]

8
ответ дан 6 December 2019 в 21:11
поделиться

да, вы можете изменить/продлить время куки, если куки установлен как root cookie. То есть вы должны установить cookie с "/" в последнем параметре. см. код ниже...

setcookie("Message", $msg, time()+60, "/");

если нет, то в основном куки будут храниться в текущем пути (корень страницы). вы можете попробовать получить к нему доступ.

1
ответ дан 6 December 2019 в 21:11
поделиться

Для PHP нет способа прочитать путь к куки, потому что браузер отправляет на сервер только значения куки, которые должны быть отправлены, и ничего больше.

Вы можете попробовать переустановить cookie без указания пути, но я сильно сомневаюсь, что это сработает. Может существовать множество различных соответствующих cookie с одинаковыми именами и менее и более точными путями. Если вы попытаетесь установить cookie с тем же именем, но без пути, браузер не будет знать, какой из cookie ему следует обновить (может быть, тот, который имеет наиболее точный путь? но это может привести к ошибкам (безопасности?), когда точный cookie, который вы ожидаете установить, не установлен).

0
ответ дан 6 December 2019 в 21:11
поделиться

также включить путь в значение cookie

3
ответ дан 6 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: