Соображения безопасности при разрешении загрузки документов

#php #codeigniter #file-upload

#php #codeigniter #загрузка файла

Вопрос:

У меня есть веб-приложение, которое позволяет пользователям загружать определенные документы, относящиеся к их учетной записи (word / Excel / powerpoint и т.д.). Я создаю это с помощью CodeIgniter, и я просто хотел проверить, что я ничего не упускаю с точки зрения безопасности.

  • Проверяются MIME-типы файлов
  • Проверяется максимальный размер
  • Имя файла хэшируется
  • Имя файла никогда не отображается ни одним пользователем, скорее при нажатии на ссылку «загрузить» вызывается контроллер safedownload с идентификатором (http://www.example.com/safedownload/1245 / )

Есть ли что-то, чего мне не хватает? CHMOD файлов в каталоге в настоящее время установлен на 0600, это безопасно?

Спасибо.

Ответ №1:

Рассматривали ли вы способ последующего доступа к файлам? Существует распространенный недостаток, о котором вы должны знать-

Если можно каким-либо образом изменить путь к файлу, возможно, что к вашему серверу можно получить доступ полностью за пределами папки, в которой вы храните документы — например ../ .. / ../etc/somefile

Чтобы защититься от этого, вы могли бы проверить путь к файлу, к которому будет получен доступ, на наличие ‘..’, чтобы убедиться, что никто не нашел способ получить эти символы в команде, которую выполняет ваш код!