ФорумПрограммированиеPHP для идиотов → Скрытая авторизация

Скрытая авторизация

  • cremnet

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 26 января 2009 г. 9:16

    Есть сайт на нем пиплы логинятся, логин инфа лежит в $_SESSION. И есть скриптик… скажем так - "отдельный", и там нужно авторизироваться пользователям вот так:

    header('HTTP/1.0 401 Unauthorized'); // требуем от клиента авторизации
    header('WWW-Authenticate: NTLM'); // тип требуемой авторизации - NTLM

    Сайт и скрипт соеденены между собой, сайт получает информацию от скрипта. НО. Согласитесь, не очень удобно вводить логин и пароль два раза вподряд.
    А как сделать так чтобы пользователям не нужно было вводить в появляющемся окне логин и пароль. Нашел вот такой вариант:
      $ch = curl_init ();
    curl_setopt($ch, CURLOPT_USERPWD, "{$_SESSION['user']}:{$_SESSION['pass']}");
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
    $result = curl_exec ($ch);

    Но такой вариант не подешел. В том скрипте стоит проверка наличия $headers['Authorization'], а curl такого в header не посылает(
    $headers = apache_request_headers();     // получаем все заголовки клиента
    if (!isset($headers['Authorization'])) { // если заголовка авторизации нет
    header('HTTP/1.0 401 Unauthorized'); // требуем от клиента авторизации
    header('WWW-Authenticate: NTLM'); // тип требуемой авторизации - NTLM
    exit; // завершаем выполнение скрипта
    }


    Ким способом можно авторизировать пользователя?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 9:24, спустя 7 минут 47 секунд


    Есть сайт на нем пиплы логинятся, логин инфа лежит в $_SESSION. И есть скриптик… скажем так - "отдельный", и там нужно авторизироваться пользователям вот так:

    header('HTTP/1.0 401 Unauthorized'); // требуем от клиента авторизации
    header('WWW-Authenticate: NTLM'); // тип требуемой авторизации - NTLM

    Сайт и скрипт соеденены между собой, сайт получает информацию от скрипта. НО. Согласитесь, не очень удобно вводить логин и пароль два раза вподряд.
    А как сделать так чтобы пользователям не нужно было вводить в появляющемся окне логин и пароль. Нашел вот такой вариант:
      $ch = curl_init ();
    curl_setopt($ch, CURLOPT_USERPWD, "{$_SESSION['user']}:{$_SESSION['pass']}");
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
    $result = curl_exec ($ch);

    Но такой вариант не подешел. В том скрипте стоит проверка наличия $headers['Authorization'], а curl такого в header не посылает(
    $headers = apache_request_headers();     // получаем все заголовки клиента
    if (!isset($headers['Authorization'])) { // если заголовка авторизации нет
    header('HTTP/1.0 401 Unauthorized'); // требуем от клиента авторизации
    header('WWW-Authenticate: NTLM'); // тип требуемой авторизации - NTLM
    exit; // завершаем выполнение скрипта
    }


    Ким способом можно авторизировать пользователя?
    если это оба твои сайты, то просто авторизуй пользователей первый раз ТОЖЕ ПО НТЛМ. тогда вторую авторизацию не попросит :)

    курлом это не обойти - ты авторизуешь СЕРВЕР, а не клиента :)))
    Сапожник без сапог
  • cremnet

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 26 января 2009 г. 9:33, спустя 9 минут 4 секунды

    если это оба твои сайты, то просто авторизуй пользователей первый раз ТОЖЕ ПО НТЛМ. тогда вторую авторизацию не попросит :)

    сайты то мои… да проще говоря, так не получится( уже думал об этом
    читал в дольи поперек http://ru2.php.net/manual/ru/function.header.php но не нашел нужных заголовков чтобы послать логин и пароль, возможно это бы мне помогла, хотя не уверен. Откровенно говоря, суть того скрипта, судя по всему, в том и состоит что он получает инфу о пользователе по средством аунтефикации.
    Можно ли как нибудь послать с помощью header(ЧТО_НИБУДЬ);
  • cremnet

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 26 января 2009 г. 9:42, спустя 8 минут 59 секунд

    может где нужно вставить ип юзверга?
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 10:41, спустя 59 минут 19 секунд

    cremnet, ник у тя читается как "це мент!"

    ЗЫ без обид
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 10:44, спустя 2 минуты 54 секунды


    cremnet, ник у тя читается как "це мент!"

    ЗЫ без обид
    чет ты перекурил, по-моемиу
    все умрут, а я изумруд
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 26 января 2009 г. 10:47, спустя 2 минуты 52 секунды

    крем нет xD
  • cremnet

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 26 января 2009 г. 10:52, спустя 5 минут 11 секунд

    cremnet, ник у тя читается как "це мент!"

    странные ассссссссоциации
    к тому же не по теме.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 10:52, спустя 27 секунд

    md5, завидно?!
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 10:53, спустя 33 секунды

    cremnet, у нас флуд не запрещен
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 11:07, спустя 14 минут 22 секунды


    md5, завидно?!
    да есть немного..
    все умрут, а я изумруд
  • cremnet

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz 27 января 2009 г. 5:32, спустя 18 часов 25 минут 16 секунд

    Похоже ответ очень прост, но не как не могу допереть как его реализовать…
    Вобщем можно использовать сл схему
    http://user:[email protected]/script/login.php
    НО как это вставить в скрипт? Я понимаю одно, достаточно пользователю один раз проследовать по такой вот ссылке и и больше она ему не нужна, скрипт и так его пускает…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!