Страница 1 из 1
[PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 1:14:27
Alex Keda
есть домен.
скажем - domain.su
есть пачка субдоменов
vasya.domain.su
petya.domain.su
эти субдомены - своего рода проекция виртуальной директории на основном - domain.su/users/vasya, domain.su/users/petya
и сайт в реальности везде один.
======
надо как-то замутить авторизацию.
чтобы вне зависмости от точки авторизации оно работало везде в пределах этой конструкции - на субдомене, или на основном домене.
идей чё-то нет вообще... куку на другой домен не поставшь, иначе я не умею =(((
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 6:30:38
jeehadina
авторизационную сессию можно передавать либо куком либо по id (sid=(и тут 32 символа). в урле.
треьего нет.
а почему куку нельзя поставить?
если всетаки можно поставить куку то '.example.com' вместо '/' и будет гуд.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 6:35:39
paradox
думаю должен быть какойто модуль для пхп под апач
а иначе это для всех сайтов будут include модуль с сессией
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 12:04:48
zg
jeehadina писал(а):а почему куку нельзя поставить?
она на домен даётся, браузер не должен давать чужие куки другим доменам.
lissyara писал(а):чтобы вне зависмости от точки авторизации оно работало везде в пределах этой конструкции - на субдомене, или на основном домене.
обычно ставят редирект
Можно и через переменные номер сессии передавать
http://ru2.php.net/manual/ru/function.o ... te-var.php
Можешь использовать именные сессии
http://ru2.php.net/manual/ru/function.session-name.php вариантов в принципе много.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 12:11:21
jeehadina
zg писал(а):jeehadina писал(а):а почему куку нельзя поставить?
она на домен даётся, браузер не должен давать чужие куки другим доменам.
документацию читать не вредно
The domain that the cookie is available. To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to
http://www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the » spec for details.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 12:16:25
zg
jeehadina писал(а):документацию читать не вредно
-))) тебя строчка эта не смущает?
jeehadina писал(а):it compatible with more browsers
с куками есть много траблов, я бы на них особо не рассчитывал
UPD вся поднаготная сессий
http://ru2.php.net/manual/ru/session.configuration.php
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 15:21:48
MAK
кука, поставленная на домен .domain.su будет видна на всех его поддоменах.
все-же это лучше, чем сессия в урле.
обычно сначала пытаются воткнуть куку, а если не получилось, передают сессию в урле(вроде как "сам драк, раз куки отключил").
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 17:32:05
zg
MAK писал(а):все-же это лучше, чем сессия в урле.
почему?
MAK писал(а):вроде как "сам драк, раз куки отключил"
кука - самый ненадёжный источник пользовательских данных, да ещё и нарушает кое-какие права человека.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 19:40:50
MAK
zg писал(а):почему?
потому что а) урл короче и б) можно избежать проблем с HTTP_REFERER
zg писал(а):кука - самый ненадёжный источник пользовательских данных, да ещё и нарушает кое-какие права человека.
однако это не мешает гигантам веб-индустрии использовать их. а некоторые(например гугл, фейсбук, мсн и многие, многие другие) даже не авторизовывает на свои сервисы.
в чем их ненадежность?
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 20:18:23
zg
MAK писал(а):в чем их ненадежность?
для клиента - куки есть файлы с сайта, содержимое которых создаётся с помощью заголовков страницы без ведома пользователя.
для сервера - он никогда достоверно не знает происхождения содержимого кук.
Для клиента весьма вероятно цепануть вирус, для сервера весьма вероятна подмена данных.
MAK писал(а):однако это не мешает гигантам веб-индустрии использовать их.
и что это доказывает? да ровным счётом ничего, есть технология, есть сфера её применения, выйдешь за рамки, будут проблемы.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 20:41:14
jeehadina
не использовать куки из-за какой-то боязни - маразм.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 20:51:29
zg
jeehadina писал(а):не использовать куки из-за какой-то боязни - маразм.
это не маразм, а параноя -))) если быть точным.
Но я не выступал против использования кук вообще, просто не стоит возлагать на них больше чем нужно.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 21:17:54
ProFTP
в куках еще можно хранить дамп объектов для высоко нагруженных систем, но говорят что с включенным кэширвоанием не сильно быстро, так как храниться на сервере в share memory
JSON::XS - JSON serialising/deserialising, done correctly and fast
http://search.cpan.org/~mlehmann/JSON-XS-2.231/XS.pm
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 21:27:36
Alex Keda
кстати - никто не помнит - размер всех заголовков килобайтом ограничен, или тока куков?
=======
вспомнил что на одном проекте при первом заходе юзера с поисковика рефер покодированный base64 в куку кладётся, а если юзер регается - в базу перкладывается....
статистика такая... запросы большие бывают
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-18 21:34:03
ProFTP
обязательно разве ставить домен в куки?
я домен в куки не ставлю - все равбответ...
(только что посмотрел домен стоит domain.ltd, без домена по-моиму работает)
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-19 6:37:10
zg
lissyara писал(а):кстати - никто не помнит - размер всех заголовков килобайтом ограничен, или тока куков?
в стандарте http1.1 ничего про общий размер заголовоков не нашёл. Если и есть ограничения, то они накладываются браузером.
кстати про длину строки запроса
Код: Выделить всё
Протокол HTTP не накладывает a priori никаких ограничений на длины
URI. Серверы ДОЛЖНЫ быть способны обработать URI любого ресурса,
который они обслуживают, и им СЛЕДУЕТ быть в состоянии обрабатывать
URI неограниченной длины, если они обслуживают формы, основанные
на методе GET, которые могут генерировать такой URI. Серверу
СЛЕДУЕТ возвращать код состояния 414 (URI запроса слишком длинный,
Request-URI Too Long), если URI больше, чем сервер может обработать
(смотрите раздел 10.4.15).
Обратите внимание: Серверы должны быть осторожны с URI, которые
имеют длину более 255 байтов, потому что некоторые старые
клиенты или прокси-сервера не могут правильно поддерживать
эти длины.
ProFTP писал(а):обязательно разве ставить домен в куки?
нет, куки принадлежат тому домену, на который пришёл запрос. Указывать домен нужно для большей секурности.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-19 10:21:58
MAK
zg, прости, но это что-то больше, чем паранойя. )
У нас есть всего 2 способа идентифицировать уникальную сессию(точнее 2 разновидности единственного решения). Каким-то образом передавать уникальный идентификатор сессии. 1) передавать его в гет/пост параметре, 2) передавать его в куке. В обоих случаях это будет одна строка в заголовке запроса клиента. Их одинаково легко подделать.
Все остальные проверки(ip, юзер_агент...все что угодно, что передает серверу браузер) лишь дополняют эти способы. Тем самым усложняя жизнь кул-хуцкерам, которые нашли id сессии.
Согласен что кука - это дополнительный геморой клиенту, ведь ее надо куда-то сохранить, потом при каждом запросе передавать. Но это уже проблема клиента(браузера) и его реализации - к протоколу хттп не относящегося. По вирусам не специалист. Кто-нить может назвать процент вирусов, проникших на комп через куки?
ProFTP, не стоит в куках хранить много данных. Ведь раз полученная кука клиентом, в дальнейшем будет постоянно передаваться на сервер, неоправдано увеличивая тем самым исходящий трафик. Есть некий предел(у каждого проекта свой) за который нельзя выходить. Для меня, в общем случае, примерно, не более 10 кук, каждая длинной не более 255 символов.
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-19 12:47:02
Volodymyr
По умолчанию идентификатор пишется все-равно в куку. Так что действительно самый простой способ через разрешение имени домена через точку.
.htaccess
Код: Выделить всё
php_value session.cookie_domain .domain.name
или
php.ini
Re: [PHP] Задачка про авторизацию.
Добавлено: 2008-12-19 14:53:03
zg
MAK писал(а):zg, прости, но это что-то больше, чем паранойя. )
(зевая) ага
Volodymyr писал(а):По умолчанию идентификатор пишется все-равно в куку
по умолчанию пхп передаёт и куку и переменную. Если кука вернулась, то использует её, если нет, продолжает оверврайтить переменную во всех ссылках и формах.