存储上传文件的最安全方式

Mic*_*ick 7 symfony

我将上传的文件存储在web目录中:

//src/Acme/CocoBundle/Entity/CocoFromTheNorth.php
/**
 * @ORM\Column(type="string", length=255, nullable=true)
 */
public $path;

protected function getUploadRootDir()
{
    return __DIR__.'/../../../../web/'.$this->getUploadDir();
}

protected function getUploadDir()
{

    return 'uploads/documents';
}
Run Code Online (Sandbox Code Playgroud)

这是一个好习惯吗?将上传的文件保留在Web目录之外以便用户无法直接访问它们会不会更好?

我是否认为最好的方法是将上传的文件存储在Web根目录之外?那么它最好的地方在哪里?或者我如何配置Web服务器以拒绝访问uploads目录?

Ja͢*_*͢ck 9

X-SendFile在使用PHP建立访问权限后,最好将上传的文件保留在Web目录之外,并用于提供这些文件.

我在这里概述了类似的内容:如何在服务器上安全地存储文件

这里:在PHP动态创建时缓存HTTP响应