Применение имени пользователя / пароля к папке .htaccess с помощью PHP - PullRequest
1 голос
/ 12 июня 2011

Я создаю веб-приложение на PHP / MySQL.Пользователи входят в систему и устанавливают различные переменные сеанса.

На веб-сервере есть папка, в которую пользователи могут загружать файлы (в любом виде - изображения, PDF, DOC и т. Д.).Я хотел бы защитить эту папку, чтобы люди, которые не вошли в систему, не набирали URL и не получали доступ к этим файлам.Просмотр файлов в этой папке запрещен.

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

Есть ли способ, когда пользователь входит в систему, устанавливая свои переменные сеанса, к тому жевремя - с помощью PHP - также установить имя пользователя / пароль для защищенной папки - так что они не запрашиваются?Спасибо.Иэн.

Ответы [ 3 ]

0 голосов
/ 12 июня 2011

Не думаю, что вы можете получить переменные сеанса PHP с уровня .htaccess.

Что вы можете сделать, это переписать любой доступ к сценарию PHP, который проверяет вошедшего в систему пользователялибо возвращает файл, либо перенаправляет на страницу «не вошел».

0 голосов
/ 12 июня 2011

Я делал это несколько лет назад, но с cpanel это работало очень хорошо: я программно вызвал страницу настроек защиты каталогов cpanel и добавил туда имя пользователя / пароль.Поэтому cpanel позаботилась об администрировании сервера.Однако я понятия не имею, если это все еще работает.

Существует библиотека, которую вы можете использовать для создания файлов .htaccess и .htpasswd.Я никогда не использовал его, поэтому я не могу сказать, работает ли он: Класс: PHP Функции Класс

Я также помню некоторую другую библиотеку, которая выполняет только вещи .htaccess и .htpasswd, так что вы можете найти что-то еще с поиском в Интернете.

0 голосов
/ 12 июня 2011

То, как я подошел к этому, состояло в том, что защищенная папка, к которой они думают, что они получают доступ, НЕ является фактически защищенной папкой, что происходит, если вы взаимодействуете с ней только через PHP, и если они вошли в систему (что вы можете сделать подделкой .htaccess отправив соответствующие коды аутентификации в сети см. http://php.net/manual/en/features.http-auth.php)

Оттуда, если они «входят в систему», вы можете сказать, и им могут быть показаны коды, если нет, вы можете сказать: «Вы не вошли в систему, если вы хотите получить доступ к этой области, вам нужно будет войти» .

это просто, но эффективно.

помните, конечно, что разумные люди знают, что если вы сделаете http://user:password@site.com/files, он автоматически отправляет информацию о веб-аутентификации.

...