Назад | Перейти на главную страницу

Сервер Ubuntu 14 - Настройка запроса пароля пользователя перед загрузкой файла

У меня настроен сервер Ubuntu 14 (я использую стек LAMP), и в настоящее время на нем размещается созданный мной веб-сайт. Я загрузил туда zip-файл, и любой, у кого есть ссылка, может пойти и скачать его. Однако это может стать проблемой очень быстро. Допустим, файлы могут идти по пути вроде:

homepage.com/src/file1.zip

Любой, у кого есть достаточно любопытства, может продолжить и ввести homepage.com/src/ и просмотреть весь каталог и начать загрузку других файлов, которые они могут там увидеть. Это также не мешает им пытаться получить доступ к другим папкам, таким как homepage.com/source/ и просто попробуйте выудить папки.

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

Однако, перейдя к созданию AuthFiles, я не думаю, что смогу применить это к папке или файлу. Таким образом, подводя меня к моему основному вопросу:

Как я могу предложить пользователю ввести комбинацию имени пользователя и пароля, прежде чем он сможет загрузить файл?

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

Любая помощь и руководство очень приветствуются.

То, что вам нужно, в apache называется .htaccess.

Увидеть Документация Apache для подробностей.

По сути, .htaccess позволяет изменять конфигурацию Apache на уровне папки. Вы просто помещаете в папку файл с именем .htaccess и редактируете его. Для базовой аутентификации вам сначала необходимо создать файл учетных данных:

sudo htpasswd -c /etc/apache2/.htpasswd username

Затем вы можете поместить файл с именем .htaccess в папку, которую вы хотите защитить, со следующим содержимым:

AuthType Basic
AuthName "Protected"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Путь к файлу .htpasswd можно выбрать свободно, но постарайтесь поместить его в папку, недоступную для публики.