|
|
|
| Как я понял из анализа результатов проведенного по форуму поиска, вопрос о том, что происходит с сессией при неработающих куки, возник не только у меня.
Тех поддержка ВДС, кудая обратился за советом, дала вот такие небезинтересные ссылки, довольно подробно освещающие этот вопрос:
http://www.spravkaweb.ru/php/managfun/session/cookies
http://php.spb.ru/php/session.html
По существу, если делать ссылки вида
echo '<p><a href="889.php?' . SID . '">Ссылка</a></p>';
|
то проблема влияния отключения куки на сессию исчезает. Причем, если куки включены, то идентификатора сессии даже не видно в адресной строке.
Есть ли смысл взять за правило строить ссылки только таким образом? | |
|
|
|
|
|
|
|
для: Владимир55
(19.02.2009 в 20:34)
| | Вы что, ни в коем случае: в адресной строке будет некрасивый знак вопроса: «http://.../889.php?» при включенных cookies. | |
|
|
|
|
|
|
|
для: Владимир55
(19.02.2009 в 20:34)
| | SID не с проста в cookie поместили, дело в том, что URL с SID, указанный на каком-нибудь ресурсе, позволял зачастую воспользоваться аккаунтом неосторожного пользователя (даже если сессия имела ограничение по времени, находились шустрые злоумышленики). Причем поисковые системы зачастую слишком быстро индексируют страницы, позволяя автоматизировать процесс поиска таких ссылок. Собственно все тенденции последних лет сводились к тому, чтобы убрать SID (который строго говоря добавлялся автоматически к ссылкам, необязательно использовать его в echo) из GET-параметров в cookie, которые не индексируются и которые невозможно передать случайно, если сайт не содержит XSS-инъекции. | |
|
|
|
|
|
|
|
для: cheops
(19.02.2009 в 20:49)
| | Однако, если я правильно понял, когда сайт посещает посетитель с выключенными куки, то содержимое SID все равно выводится в адресную строку. Причем, выводится автоматически.
И не факт, что поисковики индексируют сайт со включенными куки (если так можно сказать). | |
|
|
|
|
|
|
|
для: Владимир55
(19.02.2009 в 21:09)
| | >Однако, если я правильно понял, когда сайт посещает посетитель с выключенными куки, то содержимое SID все равно выводится в адресную строку. Причем, выводится автоматически.
Насколько я помню, это зависит от настроек =) | |
|
|
|
|
|
|
|
для: ddhvvn
(19.02.2009 в 21:57)
| | Вроде бы да, зависит. Но зависимость очень простая: либо вы разрешаете передавать идентификатор в адресе, либо сессии не работают. | |
|
|
|
|
|
|
|
для: Владимир55
(19.02.2009 в 22:03)
| | >ибо вы разрешаете передавать идентификатор в адресе, либо сессии не работают.
вариант "либо передается через куки" даже не рассматривается? | |
|
|
|
|
|
|
|
для: Loki
(19.02.2009 в 22:35)
| | Мы же говорим о случае, когда куки запрещены. | |
|
|
|
|
|
|
|
для: Владимир55
(19.02.2009 в 22:55)
| | Мне кажется что Вы боретесь с ветряными мельницами: на эти 0.02% аудитории можно легко наплевать слюнями. Отключил куки - ну и сам себе злобный буратино.
— С позволения вашего величества, я этого письма не писал. Там нет моей подписи.
— Тем хуже . Значит , ты что—то худое задумал . А не то подписался бы сам, как все честные люди. Вина доказана!
Льюис Кэрролл
| |
|
|
|
|
|
|
|
для: Loki
(19.02.2009 в 23:46)
| | "Мне кажется что Вы боретесь с ветряными мельницами: на эти 0.02% аудитории можно легко наплевать... "
Отчасти это так - пользователей с отключенными куки у меня 1.1 процента. Их интересы можно и не учитывать, но проблема в том, что от таких посетителей искажается общая статистика работы скрипта, который я уже почти сделал: переход со страницы на страницу засчитывается за приход нового посетителя, т.е. один бродящий по сайту даст десятки неверных записей. Вылезают и другие дефекты - форма ввода информации учитывается как самостоятельная безымянная страница, и т.п. Так что лакировка в моём случае неизбежна. | |
|
|
|
|
|
|
|
для: Владимир55
(20.02.2009 в 12:33)
| | Ну и пусть в этих 1.1% случаев sid передается через get... это же стандартная настройка: если куки включены - храним в куках, если нет - в url. Ну либо всех железно обязать включить куки, как это сделано на некоторых сайтах. | |
|
|
|
|
|
|
|
для: Loki
(19.02.2009 в 22:35)
| | >>>>Однако, если я правильно понял, когда сайт посещает посетитель с выключенными куки, то содержимое SID все равно выводится в адресную строку. Причем, выводится автоматически.
>>>Насколько я помню, это зависит от настроек =)
>>Вроде бы да, зависит. Но зависимость очень простая: либо вы разрешаете передавать идентификатор в адресе, либо сессии не работают.
>вариант "либо передается через куки" даже не рассматривается?
через выключенные? | |
|
|
|
|
|
|
|
для: Владимир55
(19.02.2009 в 21:09)
| | >Однако, если я правильно понял, когда сайт посещает посетитель с выключенными куки, то
>содержимое SID все равно выводится в адресную строку. Причем, выводится автоматически.
Можно и так настроить.
>И не факт, что поисковики индексируют сайт со включенными куки (если так можно сказать).
Поисковики штука крайне пронырливая, была тут года три назад тема, поисковики постоянно сливали всему миру содержимое заказа в интернет-магазине (SID как раз через адресную строку передавался). | |
|
|
|
|
|
|
|
для: cheops
(20.02.2009 в 00:38)
| | а если в сессии хранить IP-сеть и Броузер пользователя.
и сразу после старта сессии проверять он ли хозяин.
так будет меньше краж...? | |
|
|
|
|
|
|
|
для: а-я
(20.02.2009 в 01:20)
| | Конечно, но проще использовать cookie, а там где их использовать нельзя, например, в мобильных решениях - IP-адрес в подавляющем большинстве случаев одинаковый (NAT) и юзерагент через одного повторяется. | |
|
|
|
|
|
|
|
для: cheops
(20.02.2009 в 02:00)
| | "стандартная настройка: если куки включены - храним в куках, если нет - в url. "
Да вот что-то не получается эта стандатная настройка!
Установил в php.ini session.name = SID - толку никакого.
Создал .htaccess файл в корневом каталоге и поместил в нем строку php_value session.name SID - тоже без толку.
Как еще можно достигнуть того, чтобы при отключенных куках сессия передавалась через УРЛ? | |
|
|
|
|
|
|
|
для: Владимир55
(20.02.2009 в 14:03)
| | а эта настройка к делу отношения не имеет | |
|
|
|
|
|
|
|
для: Loki
(20.02.2009 в 15:54)
| | А как настроить то, Loki ?
Как выяснилось, при компилляции --enable-trans-id указано не было. И что теперь делать? | |
|
|
|
|
|
|
|
для: Владимир55
(20.02.2009 в 16:00)
| | тады - ой.
а так значений
session.use_cookies=1;
session.use_only_cookies=0; //значение по умолчанию
|
по идее должно быть достаточно... | |
|
|
|
|
|
|
|
для: Loki
(20.02.2009 в 16:09)
| | Внутренний голос так мне и подсказывал, что придется пересобирать рнр...
Это всё штучки пятой версии - в рнр4 сей параметр был задан по умолчанию. | |
|
|
|
|
|
|
|
для: Владимир55
(20.02.2009 в 16:39)
| | что мешает написать
session.use_trans_sid = 1 в php.ini или
php_flag session.use_trans_sid on в .htaccess ? | |
|
|
|
|
|
|
|
для: Trianon
(20.02.2009 в 16:51)
| | чтобы поставить session.use_trans_sid = 1 в php.ini надо чтобы php был собран с ключем --enable-trans-sid | |
|
|
|
|
|
|
|
для: Loki
(20.02.2009 в 17:33)
| | ну если совсем так тяжко
наверно, можно использовать output_add_rewrite_var() | |
|
|
|
|
|
|
|
для: а-я
(20.02.2009 в 17:37)
| | А тчо это?
И как использовать? | |
|
|
|
|
|
|
|
для: Loki
(20.02.2009 в 17:33)
| | Саш, ты ничего не путаешь?
session.use_trans_sid boolean
session.use_trans_sid whether transparent sid support is enabled or not. Defaults to 0 (disabled).
Note: For PHP 4.1.2 or less, it is enabled by compiling with --enable-trans-sid.
From PHP 4.2.0, trans-sid feature is always compiled.
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.02.2009 в 21:59)
| | Можно мне вмешаться в диалог?
Вот ответ от техподдержки, устанавливавшей рнр:
"--enable-trans-sid не было, да и не могло быть указано при компиляции рнр5" | |
|
|
|
|
|
|
|
для: Владимир55
(20.02.2009 в 22:08)
| | > Можно мне вмешаться в диалог?
Тут вроде фуршет - не диалог... во всяком случае, пока кто-нибудь не воспользуется этой свеженькой кнопочкой сверху.
> "--enable-trans-sid не было, да и не могло быть указано при компиляции рнр5"
что полностью объясняется процитированным мной фрагментом мануала. | |
|
|
|
|
|
|
|
для: Владимир55
(20.02.2009 в 22:08)
| | таки попробуйте (20.02.2009 в 16:51) чтоли... | |
|
|
|
|
|
|
|
для: Trianon
(21.02.2009 в 11:16)
| | Да я сразу пробую всё, что здесь рекомендуется.
Вот это session.use_trans_sid = 1 в php.ini не вызымело никакого результата.
А это php_flag session.use_trans_sid on в .htaccess сработало, но:
- сессии вылезли во все урлы, даже и при включенных куки;
- сессии не передаются через формы ввода.
Кроме того, хочется всё же настроить рнр для канонической работы, описываемой в мануалах. Потому и родилась тема http://softtime.ru/forum/read.php?id_forum=1&id_theme=62767&page=1 | |
|
|
|
|
|
|
|
для: Trianon
(20.02.2009 в 21:59)
| | Наверное так и есть. Я поленился пойти в мануал и посмотрел только комментарии к php.ini, а там было сказано только про ; trans sid support is disabled by default.
и далее по тексту. В общем, информация там несколько устарела. | |
|
|
|