保护PHP和Slim的文件上传



我有用PHP编写的REST API,并基于Slim Framework。

use SlimHttpUploadedFile;
$uploadedFiles = $request->getUploadedFiles();
$uploadedFile = $uploadedFiles['myFileName'];

我应该如何保护文件上传脚本?我不仅要设置文件大小限制,还要保护我的网络服务器不上传除图像(jpg,png)以外的任何内容。在 Slim 中上传文件脚本的最佳实践是什么?

您可以在服务器的 php.ini 中限制上传文件大小限制,只需将 upload_max_filesize 指令的值更改为所需的最大限制即可。

至于只允许某些文件类型,您可以使用如下所示的方法来实现这一点:

<?php
$extension = pathinfo($uploadedFile, PATHINFO_EXTENSION);
$allowed = ["image/jpeg", "image/png"];
if(!in_array($extension, $allowed)) {
    $error = "File type is not allowed!";
}

最新更新