Эй.. мой вопрос состоит в том, как предотвратить кого-то, загружают вирус или некоторый вредоносный код с расширением, которое Вы симулируете, например, что у меня есть загрузчик файла PDF, любой может загрузить двоичный файл с камуфляжем PDF существует много программ, чтобы сделать это.
Есть число проблем безопасности, возникающих при загрузке файлов. Первая проблема заключается в том, что это может быть не тот файл, который вам нужен, в данном случае pdf. Переменная $ _ FILES ['имя_файла'] ['тип']
контролируется злоумышленником, никогда не доверяют. Это значение обычно изменяется с помощью кода эксплойта или с помощью tamperdata.
1) Первый шаг в вашей системе безопасности - убедиться, что файл имеет расширение .pdf:
if("pdf"!=substr($fileName, strrpos($fileName, '.') + 1)){
die("Invalid File Type");
}
2) Затем вы должны проверить, какой тип файла он использует, используя php filetype () функция.
3) Серьезная проблема заключается в том, что эти PDF-файлы могут использовать уязвимости, такие как переполнение буфера , обычно обнаруживаемое в программном обеспечении, созданном Adobe. Эти файлы PDF используются для распространения вирусов при атаке Drive By Download .
Лучшее решение - установить брандмауэр веб-приложений Mod_Security . Это предотвратит попадание таких атак, как sql-инъекция и xss, на ваше веб-приложение. Mod_Secuirty можно настроить на сканирование всех загружаемых файлов на наличие вирусов с помощью modsec-clamscan .
Обратите внимание на расширение php FileInfo .
Распознавание фактического типа контента аналогично команде файла unix файла
.
Но это полезно только против злонамеренных пользователей, которые просто переименовывают, например virus.exe в virus.pdf. Это не предотвращает загрузку вредоносного PDF-файла (с использованием какой-либо ошибки в одной или нескольких наиболее распространенных программах для чтения PDF-файлов).
Вы не можете предотвратить загрузку вируса. Лучший метод - запустить проверку на вирусы, например clamscan, для всех файлов, загружаемых на ваш сайт.
Используя проверку расширений/MIME, вы только узнаете, что файл назван правильно, или имеет правильную MIME-подпись. У вас не будет возможности определить, есть ли в нем вирус или нет, пока вы его не просканируете.