Apache Digest/Базовый вход через PHP

Я пытаюсь выяснить, есть ли способ заставить PHP войти в Apache для пользователя. Таким образом, если пользователь указывает действительное имя пользователя и пароль в HTML-форме, PHP войдет в систему с учетными данными. Итак, что-то вроде:

<?php 
if ($_POST["user"] == "john" && $_POST["pass"] == "swordfish"){
   apache_login($_POST["user"], $_POST["pass"]);
}
?>

То, что я пытаюсь сделать, это обеспечить некоторую безопасность входа в Apache для защиты файлов, но я хочу, чтобы это имя пользователя/пароль не всплывало, которое Apache использует для получения учетных данных.

Я хочу, чтобы они заполняли свою информацию в HTML-форме и чтобы PHP позаботился об аутентификации, прежде чем они смогут просматривать какие-либо файлы, чтобы кто-то не мог просто указать «http://example.com/files/private.doc». в URL и получить файл.

Заранее спасибо!


person user745811    schedule 09.05.2011    source источник
comment
Вы когда-нибудь находили решение этой проблемы?   -  person iambriansreed    schedule 07.03.2012


Ответы (2)


Пробовали ли вы http://comp.uark.edu/~ajarthu/mod_auth_form/ это добавляет вход на основе формы для базовой аутентификации. Автор заявляет, что Apache будет иметь встроенную возможность для этого в v2.4 (см. https://httpd.apache.org/docs/2.4/mod/mod_auth_form.html)

person Julian Knight    schedule 24.02.2012
comment
Тем не менее, этот мод по-прежнему основан на сессиях. Просто говорю' - person DanMan; 17.11.2012

Прочтите о модели обработки запросов Apache.

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

person AJ.    schedule 09.05.2011