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

#php #apache #basic-authentication #digest

#php #apache #базовая аутентификация #дайджест

Вопрос:

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

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

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

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

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

Комментарии:

1. Вы когда-нибудь находили решение этой проблемы?

Ответ №1:

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

Комментарии:

1. Хотя этот мод все еще основан на сеансе. Просто говорю

Ответ №2:

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

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