验证上传的文件的大小和病毒


Validate an uploaded file for size and viruses

我想方便用户从我的WordPress博客前端上传头像。我发现了一个插件"广告本地头像",它可以帮助我同样的(我没有尝试过,直到现在)。

但是我担心如果用户上传一个非常大的文件,或者一个被病毒感染的文件,可能会发生什么。如何在WordPress(或PHP)中执行以下操作:

  1. 保存到服务器前检查文件大小。(上传时检查文件大小)
  2. 扫描文件内容
  1. 保存到服务器前检查文件大小。(上传时检查文件大小)

当PHP解码POST请求时,正在检查最大文件大小。它在php.ini中通过upload_max_filesize设置。一般在10MB左右。

但是你可以很容易地设置你的应用程序特定的最大文件大小通过一个简单的测试:

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

然后做出相应的反应并打印一条错误消息。500K对于个人资料图像和头像应该绰绰有余。

  • 扫描文件内容
  • 那么您需要在服务器上安装病毒扫描程序。有各种可用的。由于它是开源的,许多Unix/Linux服务器可能都有clamav。在PHP中可以这样使用:

    exec("clamscan '$filename'", $output, $result);
    if ($result === 0) {
         // everything ok
    }
    

    对于病毒,输出状态$result1,对于其他错误,输出状态2