За последние 24 часа нас посетили 21813 программистов и 1067 роботов. Сейчас ищут 707 программистов ...

Кроссдоменная авторизация

Тема в разделе "Решения, алгоритмы", создана пользователем antonn, 9 фев 2008.

  1. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Есть у кого какие наработки по сабжу, поделитесь пожалуйста :)
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Есть. Грузить жабаскрипт с общего сервера, который проверив куку, отдаст информацию о том авторизован юзер или нет. Авторизация в этом случае обязательно должна проходить через основной сервер. Скажем через редирект: Сайт -> Сервер авторизации -> Сайт.
     
  3. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  4. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Sergey89
    И что потом с этим жабаскриптом делать?
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Ставить куку и обновлять страницу.
     
  6. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Sergey89
    Ты понимаешь, что это уязвимость? Я открываю твой сайт со сформированной кукой и получаю доступ к закрытым данным. Какую куку ставить, видно из жабаскрипта, который у меня перед глазами.
     
  7. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Дак а если ты авторизовался, разве ты не должен получить доступ к закрытым данным?
     
  8. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Sergey89
    Смотри, допустим я - хакер Вася. Что я делаю:
    1. захожу на твой сайт
    2. вижу JS-обращение к другому серверу
    3. внимательно изучаю, как результат этого обращения используется у тебя, какая кука ставится для твоего сайта и с каким значением (с основного сервера-то ты только получаешь "да" или "нет")
    4. делаю запрос на твой сайт, "передавая" при этом аналогичную куку
    5. пью чай.
     
  9. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    На сервер никакая кука не уходит.
    Смотри как проходит залогивание:
    1) Я ввожу логин и пароль. На локальном сайте проверяется авторизация и на сервер уходит SOAP запрос с неким SID.
    2) Меня кидает на сервер с SID в URL. Я проверяю, что такой SID есть в БД и он не устарел. Если всё ок, то на сервере ставица кука.
    3) Меня обратно кидает на сайт.

    Проверка авторизации: С сервака грузица джабаскрипт, который был сгенерирован скриптом. Скрипт проверяет куку, для текущего клиента и отдаёт либо джабаскрипт, который установит такую же куку на текущий домен и обновит страницу, либо ничего.
     
  10. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    пасиба, пойду рихтовать под себя :)
     
  11. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    авторизация нужна в пределах одного домена (типа domain.com, sub.domain.com, secsub.domain.com) или между разными доменами (domain.com, example.com) ?
     
  12. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    в пределах домена, на поддомены.
     
  13. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  14. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    куки с одними и теми же именами на разных поддоменах должны быть разными. Эт во первых, во вторых поддомены реализуются через htaccess с мод_реврайт :)
     
  15. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    > куки с одними и теми же именами на разных поддоменах должны быть разными.

    кому должны?


    > во вторых поддомены реализуются через htaccess с мод_реврайт

    а куки через браузер. и чо?
     
  16. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    блин... хватит курить и тупить, чеснслово. А то щас начну действительно жестко пользоватся своими модераторскими правами и присекать такие тупизмы на корню.

    Для того что бы кука была доступна на domain.com и всех его поддоменах достаточно правильно установить её через setcookie таким образом
    PHP:
    1. <?php
    2. setcookie ('name', 'value', $_SERVER['REQUEST_TIME'] + 3600, '/', '.domain.com');
    3.  
     
  17. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    мне НЕ нужно чтобы кука быда доступна на поддоменах. Кука с именем 'one' на домене и поддомене - это разные куки. Т.е. в них содержаться РАЗНЫЕ данные. И никак нельзя допустить, чтобы с одного домена куки читались под другим. А вот SID как то надо передавать :)
     
  18. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    > нельзя допустить, чтобы с одного домена куки читались под другим. А вот SID как то надо передавать

    кто-то заставляет объединять все куки?
     
  19. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    каждая кука устанавливается отдельно. Можно иметь хоть десятки их и у каждой свои параметры доступности.
     
  20. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    мдя ... а есть мысли, как это реализоваьт сквозь домены ?
    (год назад прихадила подобная задача ... но отвалилась даже неначавшись .. но вот интерес остался , в долгом ящеке)
     
  21. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Есть.
    Надо открыть учебник по Active Directory в винде и внимательно изучить, как эта актив директори изнутри выглядит/работает. Там эта задача была решена ещё в 2000 году.
    Особенно обратить внимание на обработку sid и на то, как устроен механизм "доверия между доменами".
    Взять MS-скую книжку, в которой всё это очень хорошо и подробно разжёвано, и прочитать.

    А потом можно возвратиться сюда и продолжить изобретать велосипед.
     
  22. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    RomanBush - спасибо за подробный ответ , тоесть ты незнаешь ? ;-)
     
  23. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    ??? А ты хотел, чтобы я тут целый учебник начал цитировать? Я-то это читал и даже сдавал экзамен. Поэтому и даю такой совет. Не нравится - изобретай велосипед дальше.
     
  24. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    RomanBush
    извени .. руки до расковыривания Active Directory как то недошли, я все больше в хттп ковыряюсь ... да консоль мучаю!

    а по поводу велосипеда ... знаешь куда негляну все костыли больше на глаза попадаются! Вот, если бы ты мог привести пару ссылок, было бы просто озамечательно ! Но ответ в той грубой форме что ты дал , не очень способствует желанию им воспользоватся!

    кстати я уверен что многие не очень вкурсе про про методы обработки СИДа в Active Directory !
     
  25. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    ссылок не знаю. Знаю, что есть учебник, официальный, от мелкомягких. Формат А4, около 250-300 страниц. Типа "введение в Active Directory".
    И есть пособие для програмистов. Тоже А4, только около 500-600 страниц. Что-то типа "общий обзор концепции работы Active Directory". Вот про неё я тебе и говорил. Хорошая книга. "Воды" мало.
    А вот "21 урок для полного постижения работы Active Directory" - что-то не попадалось такого.
    Да и экзамен по ней был - 1000 вопросов, и не более 20% ошибок. То есть - на 800 вопросов надо ответить правильно. И вопросы там нифига не "как добавить папку на рабочий стол".
    А я уверен, что многие вообще не слышали, что там вообще есть какой-то sid. Он, кстати, идёт лейтмотивом почти по всей книжке. Потому что на его основе всё и сделано.