Как я могу защитить каталог с помощью PHP? - PullRequest
0 голосов
/ 22 июля 2009

Обратите внимание, это удаленный сервер, у меня нет доступа к нему, только к FTP. Я хочу сделать это, используя чисто PHP, а не .htaccess. Есть ли способ, аналогичный .net, где вы помещаете файл web.config и устанавливаете, кто может получить к нему доступ и их пароль?

Ответы [ 4 ]

2 голосов
/ 22 июля 2009

Я бы сказал, что эквивалент такого рода функциональности из web.config для Apache - с файлами .htaccess: PHP используется для генерации страниц, но если вы пытаетесь работать на уровне каталогов, проверка должна прийти прежде чем PHP даже вызывается.

В ваших скриптах PHP вы можете получить доступ к данным HTTP-аутентификации; см. $_SERVER, особенно PHP_AUTH_USER и PHP_AUTH_PW; но защита будет на уровне файла, а не каталога - и, очевидно, она будет применена только для файлов PHP (например, не для изображений в подкаталоге).

Для получения дополнительной информации, вы можете посмотреть, например: Базовая и дайджест-аутентификация HTTP с PHP

Правильный способ сделать это для всего каталога, безусловно, с помощью файлов .htpasswd / .htaccess (или непосредственно в файле конфигурации Apache).

1 голос
/ 22 июля 2009

Насколько я знаю, нет никакого способа сделать это чисто в PHP.

Если вы можете использовать .htaccess, но не можете загрузить его по какой-либо причине, я бы предложил написать htaccess через PHP.

1 голос
/ 22 июля 2009

Зачем использовать PHP? Файлы .htaccess были разработаны для этой цели. Если вы пытаетесь сделать что-то вроде сохранения пользовательских входов в базу данных, посмотрите что-то вроде Mod_auth_mysql

Что вы можете сделать, это поместить файлы за пределы своего webroot и написать php-скрипт для обслуживания этих файлов после прохождения логики аутентификации.

0 голосов
/ 22 июля 2009

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

Вам потребуется правильно настроить веб-сервер, скорее всего, с использованием файлов .htaccess, если вы хотите защитить реальные, "физические" каталоги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...