alirdn/secureupload

PHP安全文件上传包

dev-master 2016-02-15 22:47 UTC

This package is not auto-updated.

Last update: 2020-01-10 15:43:29 UTC


README

SecureUPload – PHP secure file upload package banner SecureUPload 是一个用于安全上传文件的 PHP composer 包。SecureUPload 遵循 PHP 文件上传的最佳实践,因此您可以在没有任何文件上传安全烦恼的情况下使用它。此外,它足够灵活,可以适应大多数不同项目结构。

为什么选择 SecureUPload?

文件上传是所有 Web 应用程序中的风险部分。攻击者可以通过文件上传功能以多种方式攻击 Web 应用程序。因此,每当 Web 应用程序想要添加此功能时,开发人员都需要编写大量代码来确保其无风险。但如果我们不信任用户提供的数据(包括 HTTP 头和文件),并仔细检查一切,则文件上传可以安全。有关文件上传风险更多信息,请参阅: OWASP 无限制文件上传

SecureUPload 使用最佳实践步骤来确保文件上传安全。通过使用 SecureUpload 包,开发人员可以专注于项目的其他方面,并确保文件上传安全。

功能

  • 支持单个和多个输入文件/文件上传
  • 支持将上传的文件存储在不同的位置。更多信息请参阅 SecureUPloadConfig 的 storage_type 部分
  • 支持不同的上传文件组织方式
  • 全局或特定上传配置接受的文件类型和最小/最大文件大小
  • 生产环境零依赖
  • 对无效上传文件使用不同的错误代码,以便更好地处理错误

安装

由于 SecureUPload 没有依赖项,它可以作为 composer 包安装,或者不使用 composer,作为 PHP 库安装。

作为 composer 包安装

$ composer install alirdn/secureupload

作为 PHP 库安装

您必须从项目的 GitHub 页面下载它。然后解压它,并将 src/autoloader.php 文件包含在您的 PHP 项目中。完成!

基本用法

<?php

use Alirdn\SecureUPload\Config\SecureUPloadConfig;
use Alirdn\SecureUPload\SecureUPload;

// Create SecureUPloadConfig and set Uploaded files folder
$SecureUPloadConfig = new SecureUPloadConfig;
$SecureUPloadConfig->set( 'upload_folder', 'uploads' . DIRECTORY_SEPARATOR );

// Create SecureUPload and give previously created config to it
$SecureUPload = new SecureUPload( $SecureUPloadConfig );

// Upload a file
$Upload = $SecureUPload->uploadFile( 'file' );

// Check uploaded file
if ( $Upload->status ) {
// File has been set in <input type="file" name="file"/>
 if ( $Upload->status == 1 ) {
  echo 'File uploaded successfully. Id: ' . $Upload->id;
  // Save $Upload->id for future uses.
 } else {
  echo 'File didn\'t uploaded. Error code: ' . $Upload->error;
  // Show error
 }
} else {
 // No file is selected in input field
}

文档

需求

SecureUPload 与 PHP 5.3.0 及以上版本兼容。HHVM 也已测试并正常工作。

错误 & 功能请求

提交错误或功能请求,请使用 GitHub 存储库问题

待办事项

  • 添加病毒扫描服务API
  • 添加保存到数据库功能

许可证

SecureUPload遵循MIT许可证。有关详细信息,请参阅LICENSE文件。

作者

致谢