我必须上传文件 - 为此我需要将权限设置为 777 ......但是只有登录用户才能访问这些文件 - 最好的方法是什么?
谢谢。
您应该检查 PHP 函数chmod
。
假设这是一个网站,请尽量避免使用 777 权限,这会增加您的网站被黑客入侵的可能性。
您应该改为使用其他 PHP 处理程序(例如 FastCGI 或 SUPHP)进行调查,这些将允许您的网站以它自己的 FTP 用户的权限而不是 Apache 默认的权限运行,这将允许您写入目录而不必放松来自通常 755 用于目录,644 用于文件。
在最坏的情况下,即使使用 setfacl 命令为 apache/nobody/www-data 用户分配额外的权限,也比使用 chmod 向整个世界打开一个或多个目录要好。
就个人而言,我认为您不需要那么重的权限。我要做的是通过 PHP 上传文件,但将文件保存在网络无法访问的文件夹中,然后当一个人想要访问他自己的文件时,而不是直接将他链接到文件,你将他发送到将文件流式传输给他的 PHP 脚本(在检查他的凭据和文件所有权之后,您将其保存在数据库或其他地方)。