Загрузка файлов и обеспечение их безопасности - PullRequest
2 голосов
/ 26 сентября 2011

Я использую php и MYSQL.Я создал зону для членов, где люди могут загружать важные изображения (в основном для финансовой отчетности).Я надеялся получить совет о том, как лучше хранить эти файлы.Какая структура папок будет лучше?Ex domain.com/Files/UserName/RandomGeneratedName/Files.

Также любые советы для chmod, .htaccess, .htpassword и любой вид защиты паролем с помощью php.

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

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

Я бы рекомендовал хранить их вне дерева.Таким образом, по умолчанию вам нужно разрешить доступ к ним, а не отключить доступ (на случай, если в вашем .htaccess / config / code есть ошибка, доступ к файлам отключен, не включен)

Во-вторых, избавьтесь от случайного каталога, это не сильно повысит безопасность, но это излишне усложнит реализацию

Вы можете использовать php, чтобы проверить учетные данные участника, поставить соответствующие заголовкинапример, etag и т. д.), и подайте файл через passthru или что-то подобное.

1 голос
/ 26 сентября 2011

Лучший способ:

  • защитить каталог с помощью .htaccess
  • добавить index.html в каталог "на всякий случай"
  • использовать случайные имена файлов для хранения их в вашем каталоге
  • используйте php / mysql, чтобы проверить, есть ли у пользователя права доступа к вашим файлам

Пример: У вас есть файл в domain.com/protecteddir/sdjasdu83299sdnYUsb.dat

Вы можете использовать php / mysql для отправки пользователю в виртуальный каталог для загрузки файла. Вы можете бросить правильный заголовок файла + имя файла через php. Таким образом, даже если файл называется sdjasdu83299sdnYUsb.dat, пользователь будет загружать его как «myfinancial.doc»

Пользователь никогда не узнает, где находится настоящий файл, и как его имя.

Ваш файл .htaccess должен содержать:

<Files *>
Order Allow,Deny 
Deny from All 
</Files>
0 голосов
/ 26 сентября 2011

вы можете .htaccess для перезаписи URL и получить файл index.php (напишите этот код:) в папке, в которой сохраняются ваши файлы, поэтому, когда кто-то захочет войти в эту папку: Первый: он не знает реального адреса, второй: из-за этогоявляется index.php, который предлагает домашнюю страницу, которую он не может ввести.

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