#php #codeigniter #file-upload
#php #codeigniter #загрузка файла
Вопрос:
У меня есть веб-приложение, которое позволяет пользователям загружать определенные документы, относящиеся к их учетной записи (word / Excel / powerpoint и т.д.). Я создаю это с помощью CodeIgniter, и я просто хотел проверить, что я ничего не упускаю с точки зрения безопасности.
- Проверяются MIME-типы файлов
- Проверяется максимальный размер
- Имя файла хэшируется
- Имя файла никогда не отображается ни одним пользователем, скорее при нажатии на ссылку «загрузить» вызывается контроллер safedownload с идентификатором (http://www.example.com/safedownload/1245 / )
Есть ли что-то, чего мне не хватает? CHMOD файлов в каталоге в настоящее время установлен на 0600, это безопасно?
Спасибо.
Ответ №1:
Рассматривали ли вы способ последующего доступа к файлам? Существует распространенный недостаток, о котором вы должны знать-
Если можно каким-либо образом изменить путь к файлу, возможно, что к вашему серверу можно получить доступ полностью за пределами папки, в которой вы храните документы — например ../ .. / ../etc/somefile
Чтобы защититься от этого, вы могли бы проверить путь к файлу, к которому будет получен доступ, на наличие ‘..’, чтобы убедиться, что никто не нашел способ получить эти символы в команде, которую выполняет ваш код!