2015-05-05 3 views
2

Я создаю форму для загрузки файла с простым изображением. Программно, я использую структуру Laravel 5. Через входной фасад (через Illuminate) я могу разрешить файловый объект, который сам по себе является UploadedFile (через Symfony).Могу ли я поддельные загруженные файлы изображений?

страница API исх The UploadedFile (в Symfony docs) говорит, что

общественное целое | null getClientSize()

Возвращает размер файла. Он извлекается из запроса, из которого загружен файл . Это не должно рассматриваться как безопасное значение . Возвращаемое значение целое | нулевой размер файла

  • Что будет этих случаев, когда загруженный размер файла ошибочно сообщается?
  • Известны ли эксплоиты, используя это?
  • Как администратор может гарантировать, что это обнаружено (и, следовательно, зарегистрировано как попытка посягательства)?

ответ

1

Этот метод использует заголовок «Content-Length», который можно легко подделать. Вы захотите использовать легкую конструкцию $ _FILES ['myfile'] ['size']. В качестве ответа на другой вопрос уже был указан: Can $_FILES[...]['size'] be forged?

Это значение проверяет фактический размер файла и не изменяется указанными заголовками.

Если вы хотите проверить, что люди плохо себя ведут, вы можете просто сравнить заголовок длины содержимого с вашим значением $ _FILES ['myfile'] ['size'].

Смежные вопросы