Что произойдет, если файлы cookie будут отключены?


Здесь довольно простой вопрос. В PHP, если в браузере пользователя отключены файлы cookie, вы не можете использовать как серверные файлы cookie ($_SESSION), так И клиентские файлы cookie ($_COOKIE, setcookie) или только последние отключены? В принципе, вы не можете заставить пользователя войти в систему или сделать что-либо, что требует сеанса, верно?

Кроме того, в каком случае кто-то хотел бы отключить файлы cookie?

Спасибо!

Author: federicot, 2012-03-02

3 answers

Да, это правда. Как сеансы, так и обычные файлы cookie являются обычными файлами cookie. Если пользователь не принимает файлы cookie, он не может использовать какие-либо функции, включенные ими. Это означает, что для этого пользователя практически весь Интернет сломается, вот почему в наши дни практически нет людей, у которых полностью отключены файлы cookie.

PHP имеет встроенный механизм под названием прозрачные идентификаторы сеансов, который автоматически переписывает все ссылки, чтобы содержать идентификатор сеанса в запросе параметр. Я бы не советовал его использовать, так как идентификаторы сеансов в URL-адресе открывают совершенно новую банку червей.

Для удобства пользователя я бы рекомендовал вам проверить, включены ли у пользователя файлы cookie или нет (установите файл cookie, перенаправьте на следующую страницу с флагом в URL-адресе, на котором должны быть установлены файлы cookie , посмотрите, вернете ли вы какие-либо файлы cookie), и если нет, пожалуйста, посоветуйте пользователю включить их.

 14
Author: deceze, 2012-03-02 06:16:31

Вы можете отслеживать пользователя по $_GET.

Представьте, что на каждой отдельной странице, которую посещает пользователь, вы передаете ?user_id=XYZ123, тогда вы бы реализовали очень похожую идентификацию сервера. У него есть очевидные недостатки:

  1. если вы скопируете/вставите URL-адрес, вы отдадите свой идентификатор сеанса
  2. из-за 1 сеанса хай-джек еще менее технологичен

Почему пользователи отключают файлы cookie?
Пользователи, как правило, используют файлы cookie от первого и третьего лица, но они происходят из разных пород.

Файлы cookie первой стороны, как правило, в порядке. Когда вы посещаете Facebook, ожидается, что Facebook хранит файлы cookie для хранения ваших взаимодействий с сервером.

Чего не ожидается, так это того, что рекламная компания, которая добавляет как на Facebook, так и на eBay, вернет ваш файл cookie и проверит, ах, так что этот парень был на eBay, искал xyz, так что теперь, когда он на Facebook, я покажу ему abc, чтобы заставить его купить и т. Д. и т. Д.

 2
Author: Frankie, 2013-05-19 23:31:38

Я думаю, вам следует прочитать справочное руководство по сеансам http://www.php.net/manual/en/session.idpassing.php

Короче говоря, если ваш сервер не может найти session_id, он не сможет восстановить сеанс. Но вы можете использовать альтернативные способы хранения значений сеанса. Или вы можете создать базу session_od на основе параметров клиентской среды пользователя.

 1
Author: Electronick, 2012-03-02 06:16:35