Авторизация с использованием COOKIEs & SESSIONs

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-13 18:39:49

Всем привет!

Стала задача усовершенствования модуля авторизации (под PHP_5.2.11 и MySQL_5.1.35).
Существующий использует только сессии PHP, все данные о пользователях хранит в MySQL, пароли - в зашифрованном виде.
Существующая система авторизации подвязана к почтовику и его веб-клиенту.

Компания-заказчик является владельцем цепочки доменов по всему миру, но на данный момент использует только домен в зоне .COM. Теперь появилась необходимость разделить пользователей на географические сегменты по странам: Россию - в RU, Украину - в UA... Однако сертификат SSL компания покупает один и он будет установлен только на одном сайте, скажем, ssl.securedomain.com.

Поставленные задачи: (на сегодня)
  1. 1. Безопасность;
  • 2. Сквозная авторизация по всем сайтам используемых эту-же систему.
  • 3. Возможность сохранять пароль пользователями. (учитывая п.1).
Если кто работал над чем-нибудь подобным, поделитесь знаниями.

Спасибо.
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение ProFTP » 2009-10-13 19:07:09

kozak писал(а):
  • 2. Сквозная авторизация по всем сайтам используемых эту-же систему.
гугли на "кросс-доменная авторизация"

kozak писал(а):
  • 3. Возможность сохранять пароль пользователями. (учитывая п.1).
где сохранять их? где их не сохраняют?
kozak писал(а):
  1. 1. Безопасность;
может по гуглить нужно?

тут долго рассказывать... варианты разные можно...

  • привязать сессию к ip чтобы не украли
  • хранить сессии в MySQL
  • смотреть чтобы боты не регистрировались
  • посмотреть как на webmoney
  • пароль криптографированный, не просто хэшированный md5crypt говорят достаточно
а какие ты пробовал варианты увеличения безопасности?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-14 13:37:33

ProFTP писал(а):а какие ты пробовал варианты увеличения безопасности?
пока ничего существенного... :unknown:
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 не использую вообще. Не вижу необходимости. :unknown:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение zg » 2009-10-14 16:59:19

kozak писал(а):При успешной авторизации нас перебрасывает на тот-же https://ssl.example.com/secure_auth_page
в этот момент и надо стартовать новую авторизованную сессию, а не давать пользователю ссылки

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-15 8:26:09

zg писал(а):в этот момент и надо стартовать новую авторизованную сессию, а не давать пользователю ссылки
Ок. Спасибо. Я уже к этому пришел. )

Есть ли способ использовать одну сессию несколькими доменами?
Обязательно использовать iframы или файлы типа http://example.ua/php_image?ssid=CRYPT_USER_ID для установления сессий на других доменах?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение zg » 2009-10-15 10:34:57

kozak писал(а):Есть ли способ использовать одну сессию несколькими доменами?
только, если передвать идентификатор сессии через ссылки, по другому никак. Сессия привязывается к куке, а кука к домену, поэтому и остаётся только ссылка.

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-15 11:23:00

Можно ли установить сессию или куку на домене "exaple2.eu" с домена "exaple1.eu" используя XMLHttpRequest?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение zg » 2009-10-15 15:31:13

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

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение ProFTP » 2009-10-15 21:44:31

kozak писал(а): Из перечисленного списка не имею понятия как:
  • привязать сессию к ip чтобы не украли
ассоциировать ip к сессии, которые хранятся например в базе... есть вариант что куки кто-то урадет и под тем польователем можно будет зайти! но это как вариант...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-17 16:02:18

Зачем тогда вообще в данном случае использовать куку?
Выходите или закрываете браузер, сессия закрывается, входите - создается. Почему бы не исользовать только сессии? :cz2:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение zg » 2009-10-17 17:45:47

kozak писал(а):Зачем тогда вообще в данном случае использовать куку?
куку использует сессия, чтобы не передавать каждый раз идентификатор сесии в адресной строке.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение ProFTP » 2009-10-17 18:22:32

kozak писал(а):Зачем тогда вообще в данном случае использовать куку?
Выходите или закрываете браузер, сессия закрывается, входите - создается. Почему бы не исользовать только сессии? :cz2:
я же не знаю что там у вас, лучше куки используйте, если вам все равно, то поставьте шифрование - и все! и может некоторое, то что написано выше...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-18 16:26:45

zg писал(а):куку использует сессия, чтобы не передавать каждый раз идентификатор сесии в адресной строке.
Спасибо. Все стало на свои места. :sorry:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение kozak » 2009-10-18 16:31:06

ProFTP писал(а):я же не знаю что там у вас, лучше куки используйте, если вам все равно, то поставьте шифрование - и все! и может некоторое, то что написано выше...
Алгоритм ясен. Спасибо.

Алгоритм, стал такой: авторизируемся, если OK - то IFRAMEом устанавливаем сессии и куки на всех GEO-доменах затем по кукам проверяем авторизированы мы или нет, и если нет то выбрасываем на страницу авторизации.

Если что не так, поправьте.
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Авторизация с использованием COOKIEs & SESSIONs

Непрочитанное сообщение zg » 2009-10-19 5:29:34

kozak писал(а):то IFRAMEом устанавливаем сессии и куки на всех GEO-доменах
а зачем для всех сразу?