Ну, не всегда. Используя куки, вы хороши. Но «могу ли я смело полагаться на наличие идентификатора» призвал меня расширить обсуждение важным моментом (в основном для справки, поскольку количество посетителей этой страницы кажется довольно высоким).
PHP может быть настроен для поддержки сессий путем переписывания URL-адресов вместо файлов cookie. ( Насколько это хорошо или плохо (<- см., Например, самый верхний комментарий там) - это <a href="https://stackoverflow.com/questions/5944757/url-rewriting-does-that-cause-a-security-issue"> отдельный вопрос , давайте теперь придерживаться текущего, только с одной боковой примечание: наиболее заметная проблема с сеансами на основе URL - явная видимость голого идентификатора сеанса - это не проблема с внутренними вызовами Ajax, но затем, если он включен для Ajax, он включается для остальных сайт тоже так есть ...)
В случае сеансов перезаписи URL (без файлов cookie) Ajax-вызовы должны сами позаботиться об этом , чтобы их URL-адреса запроса были правильно созданы. (Или вы можете свернуть свое собственное решение. Вы даже можете прибегнуть к ведению сеансов на стороне клиента , в менее требовательных случаях.) Дело в явном уходе , необходимом для непрерывности сеанса , если не используете куки:
Если Ajax вызывает только извлекать URL-адреса дословно из HTML (как получено из PHP), это должно быть в порядке, так как они уже приготовлены (ммм, приготовлены).
Если им необходимо собрать запроса URI самостоятельно, идентификатор сеанса необходимо добавить в URL-адрес вручную. (Проверьте здесь или источники страниц, сгенерированные PHP ( с перезаписью URL на ), чтобы узнать, как это сделать.)
С OWASP.org :
По сути, веб-приложение может использовать оба механизма, куки или
Параметры URL или даже переключаться с одного на другой (автоматический URL
переписывание), если соблюдены определенные условия (например, существование
веб-клиентов без поддержки куки или когда куки не
принято из соображений конфиденциальности пользователя).
Из Ruby-форума сообщение:
При использовании php с cookie-файлами идентификатор сеанса будет автоматически отправляться в заголовках запросов даже для Ajax XMLHttpRequests. Если вы
использовать или разрешать сессии php на основе URL, вам нужно добавить идентификатор сессии
на каждый URL-адрес запроса Ajax.