Проверить загруженный файл на предмет размера и вирусов - PullRequest
4 голосов
/ 17 апреля 2011

Я хочу помочь пользователям загружать изображение профиля из внешнего интерфейса в мой блог WordPress.Я нашел плагин "ad local avatar", который может помочь мне в этом (я не пробовал до сих пор).

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

  1. Проверка размера файла перед сохранением его на сервере.(Проверка размера файла во время его загрузки)
  2. Сканирование содержимого файла

1 Ответ

8 голосов
/ 17 апреля 2011
  1. Проверка размера файла перед сохранением на сервере. (Проверка размера файла во время его загрузки)

Максимальный размер файла проверяется PHP при декодировании запроса POST. Это устанавливается в php.ini с upload_max_filesize. Обычно это около 10 МБ или около того.

Но вы можете легко установить максимальный размер файла для вашего приложения с помощью простого теста:

if ($_FILES["image"]["size"] >= 500000) {

Затем отреагируйте соответствующим образом и распечатайте сообщение об ошибке. 500K должно быть более чем достаточно для изображений профиля и аватаров.

  1. Сканирование содержимого файла

Затем вам нужно будет установить антивирусный сканер на сервер. Есть различные доступные. Поскольку это открытый исходный код, многие серверы Unix / Linux могут иметь clamav . Это можно использовать так из PHP:

exec("clamscan '$filename'", $output, $result);

if ($result === 0) {
     // everything ok
}

Состояние вывода $result будет 1 для вируса или 2 для других ошибок.

...