[БЕСПЛАТНО] Скрипт безопасной загрузки изображений

  • Автор темы kampot
  • 19
  • Обновлено
  • 15, May 2024
  • #1
Всем привет! Я здесь, чтобы опубликовать бесплатный сценарий безопасной загрузки на PHP.

Скрипт проверяет mimetype загруженного файла, чтобы убедиться, что расширение не изменено, и НЕ загружать вредоносные файлы. Ниже приведен сценарий: класс.upload.php:
 
<?php

include_once('class.upload.php');

use main\Upload;

$uploaded_file = (new Upload)->_uploadSecure("file");
PHP: Чтобы использовать скрипт:

  <?php namespace main; class Upload { public static $protectFiles_MimeCheck = array('application/x-httpd-php', 'application/rtf', 'application/x-sh', 'text/plain', 'application/xhtml+xml', 'text/html', 'application/java-archive', 'text/javascript'); public static $accepted_mime = array('image/jpeg', 'image/png', 'image/gif', 'image/jpeg'); public static $accepted_files = array('jpg', 'png', 'gif', 'jpeg'); public static $upload_location = "uploads/"; public function _uploadSecure($file) { $fileName = basename($_FILES["$file"]['name']); $ext = explode('.', basename($_FILES["$file"]['name'])); $file_extension = end($ext); $name = preg_replace("/\.[^.]+$/", "", $fileName); //new information $hash = md5($name); $name = "$hash.$file_extension"; $targetFilePath = self::$secure_location . $name; $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION); if(in_array($_FILES["$file"]['type'], self::$protectFiles_MimeCheck)) { return "hack_attempt"; exit(); } if(in_array($fileType, self::$accepted_files) && !in_array($_FILES["$file"]['type'], self::$protectFiles_MimeCheck)) { if(move_uploaded_file($_FILES["$file"]["tmp_name"], $targetFilePath)) { return $name; } else { return "failed"; } } else { return "failed"; } } } $Upload = new Upload; ?>
PHP: $uploaded_file вернет имя файла, если все прошло хорошо. В поле ввода мы должны использовать имя="". Слово в скобках — это $file функции Upload.

kampot


Рег
18 Feb, 2012

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно