Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Базовая аутентификация(htpasswd) передаёт ли что-то скрипту?
цитата
14/06/12 в 23:47
 Vyacheslav
1) Базовая аутентификация .htaccess и .htpasswd даёт ли возможность скриптам сервера получить, к примеру, имя пользователя или ещё какую-то инфу?
Желательно средствами php..

2) Существуют ли какие-то методы или готовые рещения передать пользователя, который аутентифицировался базовым методом, скрипту внутри это закрытой зоны на лету? Например в закрытой зоне стоит блог, у которого есть одноимённый пользователь с тем, что записан в .htpasswd или любой другой скрипт с mysql базой пользователей.
цитата
15/06/12 в 00:37
 Stek
Читай секцию манула с "HTTP authentication with PHP".

Код:

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
} else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
цитата
15/06/12 в 22:14
 idk2045
Vyacheslav писал:
одноимённый пользователь с тем, что записан в .htpasswd

а вот с htpasswd у пхп проблемы, я так и не нашел нормального скрипта который бы читал htpasswd и проверял по нему пароль.
цитата
15/06/12 в 22:24
 Stek
grozny писал:
а вот с htpasswd у пхп проблемы, я так и не нашел нормального скрипта который бы читал htpasswd и проверял по нему пароль.


Потому, что с htpasswd вообще то у апача проблема. Если ты обращаешься в директорию 10 уровней вложенности, то при обращении апач просканирует всю цепочку до корневой на наличии .htaccess и правил в нем. Теперь представь, что вытворяет апач, когда у тебя на сервере раздаются галерки с 3 уровня вложенности и выше.

Пхп поэтому получает только заголовки от сервера, а дальше уже решает использовать авторизацию или нет.

Вообще от такой авторизации одни минусы. Даже логаут нормально не сделать.
цитата
15/06/12 в 22:54
 idk2045
Stek писал:
Потому, что с htpasswd вообще то у апача проблема. Если ты обращаешься в директорию 10 уровней вложенности, то при обращении апач просканирует всю цепочку до корневой на наличии .htaccess и правил в нем. Теперь представь, что вытворяет апач, когда у тебя на сервере раздаются галерки с 3 уровня вложенности и выше.

в общем случае да, но я имел в виду распарсить конкретный htpasswd в пхп. наверняка есть решение, но че-то так сходу не нашел, там какой-то гемор с типами шифрации паролей, они разные бывают, в общем на реальных данных у меня все примеры не заработали.
цитата
15/06/12 в 23:05
 Stek
гм, поискал в гугле по "htpasswd php parse" - достаточно много разных примеров.
Но обычно http авторизация из пхп используется для сравнения логин-пароль из какой то своей базы, а не из апачевской.

Вообще честно говоря не знаю, использовать апачевскую авторизацию из пхп - в голову просто не приходило. Тем более, что давно на nginx перешел icon_smile.gif
цитата
21/06/12 в 14:18
 begemot
1) $_SERVER['REMOTE_USER']
2) используй 1)


Эта страница в полной версии