Папка безопасности? - PullRequest
0 голосов
/ 01 апреля 2009

У меня есть папка с именем upload, которая заполнена папками загруженных пользователями файлов.

Можно ли как-то помешать людям напрямую загружать файлы моих пользователей, просто вводя имена папок и имена файлов в адресную строку?

Пример: папка пользователя Jim хранится в HOST / uploads / jim

Важный файл Джима пользователя "myimportantfile.txt" хранится в HOST / uploads / jim / myimportantfile.txt

Теперь, если кто-нибудь введет в адресную строку: www.HOST.com/uploads/jim/myimportantfile.txt, он сможет просмотреть важный файл Джима.

Как я могу предотвратить это?

Могу ли я написать определенные атрибуты при создании каталогов?

Ответы [ 5 ]

4 голосов
/ 01 апреля 2009

Вы не хотите, чтобы эти файлы находились в папке, доступной через Интернет. Уберите их из рута.

Как только вы это сделаете, у вас может появиться файл, такой как download.php, в который вы передадите идентификатор файла, и он сможет затем проверить его. На самом деле Джим запрашивает его файлы и только затем извлекает файл и выводит его в браузер. в качестве вложения. Это самый безопасный / лучший способ обеспечения безопасности.

1 голос
/ 01 апреля 2009

Я полагаю, что права доступа к каталогу для каталога + w-r + x разрешают запись в каталог, но не чтение. В терминах отвратительного Unix это% chmod 733 dirname . Владение каталогом должно быть установлено правильно, используя chown и chgroup . Это относится к среде Unix.

0 голосов
/ 01 апреля 2009

Самое простое решение - просто добавить файл index.htm в папку.

Любые посетители будут видеть эту страницу, а не индекс файлов.

Страница может быть пустой или, что еще лучше, перенаправить на домашнюю страницу домена перенаправлением.

0 голосов
/ 01 апреля 2009

Вы можете использовать файл .htaccess, чтобы требовать ввода имени пользователя и пароля, делая каждую папку защищенной.

Но я думаю, что лучший способ сделать это - переместить папку загрузки за пределы веб-корня, чтобы она не была доступна напрямую, а затем создать скрипт (PHP, ASP и т. Д.), Который обслуживает запрошенный файл после аутентификации пользователь.

0 голосов
/ 01 апреля 2009

Конечно, вы можете использовать базовые права доступа к файлам / каталогам в Linux. Вы также можете установить, что все дерево будет запрещено apache.

Какую платформу / программное обеспечение веб-сервера вы используете?

Хорошо, Linux:

Если владельцем каталога является 'joe', а группой является 'apache', то:

 chmod 750 joe

Это дало бы каталогу «joe» разрешения, которые предоставляют владельцу (joe) полный доступ, групповой (apache) доступ для записи (и возможность входа в каталог) и ничего больше.

Это раскрывающийся список FTP?

Какие владельцы / группы сейчас похожи?

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