PHP-скрипт Загружаем файлы на сервер

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

Для чего используется данный скрипт?

- Профиль пользователя (загрузка собственной картинки - аватара)
- Баннерная реклама (Загрузка флеш или графического баннера)
- Онлайн фото галерея (Не будем же мы для очередной фотографии заходить по FTP, нужно автоматизировать процесс сделав загрузку изображении через админку)
- Офисная свалка (Загрузка отчетов или других важных документов формата: doc, pdf, djvu...)
Все сводится к одному и тому же - загрузка файла на сервер.

Какие файлы не нужно допускать к загрузке ?

Без вашего ведома не должны допускаться к загрузке файлы которые выполняют программный код.
Злоумышленник загрузит так называемый скрипт "Backdoor - Черный вход" и у него появится древо всех папок и файлов на вашем сервере, он сможет открывать и редактировать все файлы на сервере(конечно если нет ограничение прав пользователей) если он получит доступ к конфигурационному файлу базы данных то он получит данные для подключения к ней.

Расширения которые не должны позволяться к загрузке со стороны обычного пользователя
php, cgi, pl, php3, php4, php5, php6, phps, phtml, shtml, py, exe

Как предотвратить выполнение скриптов если хакер смог загрузить файл?

Для этого нам понадобится помощь .htaccess он не позволит запуск скриптов расширение которых находится в списке запрещенных (1. Смотрим код ниже.) (2. Данный пример подходит для сайтов на Apache)

Теоретическая часть закончена, подходим к просмотру скриптов изнутри.
Иерархия файлов и папок данного скрипта

Файл upload.html - Содержит обыкновенную форму загрузки файла на сервер.

Обратите внимание на встроенную переменную MAX_FILE_SIZE, она указывает максимально допустимый размер загружаемого файла в байтах. Не стоит на ней рассчитывать, HTML форму можно легко подделать и отправить PHP скрипту файл который не прошел проверку со стороны браузера.

Думаете, что живые комментарии в Инстаграм купить нереально? Тогда советуем Вам почитать данный материал на pricesmm.com. Здесь Вы узнаете, какие виды комментов добавляют сайты и где найти наиболее дешевый и качественный вариант.

Файл upload.php берет на себя главную роль в загрузке файла на сервер.

Я постарался предельно понятнее назвать переменные и комментировать их для читателей не знающих английского языка. Если не будет ясен определенный участок кода, задавайте вопросы в комментариях ниже.

Файл .htaccess из папки uploads запрещает выполнение файлов с определенным расширением.

>> Скачать скрипт из статьи
Все появившейся вопросы задавайте в комментариях ниже. Буду рад объяснить все непонятные моменты. Благодарю за внимание!