Страница 1 из 1
Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-13 18:39:49
kozak
Всем привет!
Стала задача усовершенствования модуля авторизации (под PHP_5.2.11 и MySQL_5.1.35).
Существующий использует только сессии PHP, все данные о пользователях хранит в MySQL, пароли - в зашифрованном виде.
Существующая система авторизации подвязана к почтовику и его веб-клиенту.
Компания-заказчик является владельцем цепочки доменов по всему миру, но на данный момент использует только домен в зоне .COM. Теперь появилась необходимость разделить пользователей на географические сегменты по странам: Россию - в RU, Украину - в UA... Однако сертификат SSL компания покупает один и он будет установлен только на одном сайте, скажем,
ssl.securedomain.com.
Поставленные задачи: (на сегодня)
- 1. Безопасность;
- 2. Сквозная авторизация по всем сайтам используемых эту-же систему.
- 3. Возможность сохранять пароль пользователями. (учитывая п.1).
Если кто работал над чем-нибудь подобным, поделитесь знаниями.
Спасибо.
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-13 19:07:09
ProFTP
kozak писал(а):
- 2. Сквозная авторизация по всем сайтам используемых эту-же систему.
гугли на "кросс-доменная авторизация"
kozak писал(а):
- 3. Возможность сохранять пароль пользователями. (учитывая п.1).
где сохранять их? где их не сохраняют?
kozak писал(а):
- 1. Безопасность;
может по гуглить нужно?
тут долго рассказывать... варианты разные можно...
- привязать сессию к ip чтобы не украли
- хранить сессии в MySQL
- смотреть чтобы боты не регистрировались
- посмотреть как на webmoney
- пароль криптографированный, не просто хэшированный md5crypt говорят достаточно
а какие ты пробовал варианты увеличения безопасности?
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-14 13:37:33
kozak
ProFTP писал(а):а какие ты пробовал варианты увеличения безопасности?
пока ничего существенного...
ProFTP писал(а):
- привязать сессию к ip чтобы не украли
- хранить сессии в MySQL
- смотреть чтобы боты не регистрировались
- посмотреть как на webmoney
- пароль криптографированный, не просто хэшированный md5crypt говорят достаточно
Из перечисленного списка не имею понятия как:
- привязать сессию к ip чтобы не украли
- хранить сессии в MySQL
По некоторым статьям из сети удалось настругать на колене такую схему:
1. Входим на домен http://example.de кликаем на Login
2. Нас редиректит на https://ssl.example.com, где мы вводим логин/пароль
3. При успешной авторизации нас перебрасывает на тот-же https://ssl.example.com/secure_auth_page где находятся изображения, загружаемые с каждого домена:
- http://example.com/php_image?ssid=CRYPT_USER_ID
http://example.ru/php_image?ssid=CRYPT_USER_ID
http://example.ua/php_image?ssid=CRYPT_USER_ID
http://example.de/php_image?ssid=CRYPT_USER_ID
.
4. На каждом из доменов проверяем корректность CRYPT_USER_ID и создаем сессию, после чего перебрасываем на исходный сайт http://example.de
Система работает, но тут появляются такие проблемы:
- стойкость ssl нарушена, т.к. картинки грузятся по незащищенному соединению
- при большом количестве доменов время на их загрузку уходит довольно много
P.S. Cookies не использую вообще. Не вижу необходимости.

Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-14 16:59:19
zg
в этот момент и надо стартовать новую авторизованную сессию, а не давать пользователю ссылки
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-15 8:26:09
kozak
zg писал(а):в этот момент и надо стартовать новую авторизованную сессию, а не давать пользователю ссылки
Ок. Спасибо. Я уже к этому пришел. )
Есть ли способ использовать одну сессию несколькими доменами?
Обязательно использовать iframы или файлы типа http://example.ua/php_image?ssid=CRYPT_USER_ID для установления сессий на других доменах?
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-15 10:34:57
zg
kozak писал(а):Есть ли способ использовать одну сессию несколькими доменами?
только, если передвать идентификатор сессии через ссылки, по другому никак. Сессия привязывается к куке, а кука к домену, поэтому и остаётся только ссылка.
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-15 11:23:00
kozak
Можно ли установить сессию или куку на домене "exaple2.eu" с домена "exaple1.eu" используя XMLHttpRequest?
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-15 15:31:13
zg
нет, это нарушение протокола безопасности. Кука, как и реквест, привязываются всегда к домену. Браузеры, увы, сторого следуют этому протоколу. Единственное исключение - можно подгружать javascript из любых доменов, но в данной ситуации это ни к чему.
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-15 21:44:31
ProFTP
kozak писал(а):
Из перечисленного списка не имею понятия как:
- привязать сессию к ip чтобы не украли
ассоциировать ip к сессии, которые хранятся например в базе... есть вариант что куки кто-то урадет и под тем польователем можно будет зайти! но это как вариант...
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-17 16:02:18
kozak
Зачем тогда вообще в данном случае использовать куку?
Выходите или закрываете браузер, сессия закрывается, входите - создается. Почему бы не исользовать только сессии?

Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-17 17:45:47
zg
kozak писал(а):Зачем тогда вообще в данном случае использовать куку?
куку использует сессия, чтобы не передавать каждый раз идентификатор сесии в адресной строке.
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-17 18:22:32
ProFTP
kozak писал(а):Зачем тогда вообще в данном случае использовать куку?
Выходите или закрываете браузер, сессия закрывается, входите - создается. Почему бы не исользовать только сессии?

я же не знаю что там у вас, лучше куки используйте, если вам все равно, то поставьте шифрование - и все! и может некоторое, то что написано выше...
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-18 16:26:45
kozak
zg писал(а):куку использует сессия, чтобы не передавать каждый раз идентификатор сесии в адресной строке.
Спасибо. Все стало на свои места.

Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-18 16:31:06
kozak
ProFTP писал(а):я же не знаю что там у вас, лучше куки используйте, если вам все равно, то поставьте шифрование - и все! и может некоторое, то что написано выше...
Алгоритм ясен. Спасибо.
Алгоритм, стал такой: авторизируемся, если OK - то IFRAMEом устанавливаем сессии и куки на всех GEO-доменах затем по кукам проверяем авторизированы мы или нет, и если нет то выбрасываем на страницу авторизации.
Если что не так, поправьте.
Re: Авторизация с использованием COOKIEs & SESSIONs
Добавлено: 2009-10-19 5:29:34
zg
kozak писал(а):то IFRAMEом устанавливаем сессии и куки на всех GEO-доменах
а зачем для всех сразу?