переменные сеанса не переносятся с http://www.xxxx.com на http://xxxx.com - PullRequest
1 голос
/ 01 июля 2010

Некоторые пользователи моего сайта узнали об этой проблеме. Многие пользователи заходят в свой браузер http://xxxx.com и затем входят в систему. Затем они могут щелкнуть ссылку, которая приводит их к http://www.xxxx.com и просит их войти снова! Это известная проблема, с которой кто-то сталкивался раньше? Я попытался погуглить, но я не уверен, что я использую неправильные ключевые слова или что-то еще, потому что я не могу найти ничего, связанного с этим.

Спасибо, Йен Маккалоу

Ответы [ 4 ]

5 голосов
/ 01 июля 2010

Что касается вашего браузера, www.xxxx.com и xxxx.com - это разные домены.Политика того же происхождения запрещает доступ к файлам cookie через домены.

Однако браузер знает о поддоменах, и поддомен может получить доступ к файлам cookie родительского домена.Поэтому, если вы хотите, чтобы ваш файл cookie был доступен как для xxxx.com, так и для сайта www.xxxx.com, просто установите свой файл cookie на .xxxx.com, и все будет настроено.

0 голосов
/ 01 июля 2010

Люди, похоже, предполагают, что вы используете куки для выполнения аутентификации, но пропускаете то, что кажется вашим корневым вопросом.Тревор кратко коснулся этого, но все еще придерживался концепции печенья.Что касается http, www.xxxx.com и xxxx.com - это разные субдомены в одном домене верхнего уровня.Следовательно, хотя они могут быть одним и тем же ip, тем же веб-сайтом, тем же всем, запрос браузера и ответ сервера считаются двумя отдельными доменами / сайтами.Сеансы не разделяются между поддоменами, если у вас нет отдельного состояния сеанса (например, хранилище сеансов SQL и т. Д.).

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

0 голосов
/ 01 июля 2010

Когда вы устанавливаете cookie, вы можете указать, для какого домена устанавливается cookie. Если вы этого не сделаете, файл cookie относится только к этому имени хоста, и, таким образом, если файл cookie установлен на www.example.com, он будет возвращен браузером только на этом имени хоста или ниже.

Если при настройке файла cookie вы указали домен «example.com», он должен работать и на «www.example.com».

Проблема в том, что более специфический файл cookie переопределяет менее специфичный, поэтому, если вы ранее установили файл cookie на «www.example.com», он продолжит переопределять новый набор файлов «example.com» вместо того, чтобы быть замененным им - вам сначала нужно будет удалить набор для "www.example.com". Это становится сложным, поскольку, когда клиент возвращает cookie на сервер, он не говорит, для какого имени хоста был установлен cookie.

0 голосов
/ 01 июля 2010

Проверьте домен файла cookie, при создании файла cookie можно указать, будет ли он использоваться для всех поддоменов, корневого сервера, определенного поддоменов и т. Д. Для обработки всего этого файла cookie будет использоваться файл .example.com * 1001. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...