我正在使用一个Thumbnail
插件。它将拇指存储在 webroot 上的文件夹中。但是当它试图保存拇指时,返回“不可写”错误。它的目录权限是755
. 如果我将权限更改为777
,错误就会消失。但我在某处读到777
权限可能会导致安全问题..
我该怎么办?
我正在使用一个Thumbnail
插件。它将拇指存储在 webroot 上的文件夹中。但是当它试图保存拇指时,返回“不可写”错误。它的目录权限是755
. 如果我将权限更改为777
,错误就会消失。但我在某处读到777
权限可能会导致安全问题..
我该怎么办?
您可以更改所有者(例如chown www-data:www-data your/direcotry/path
在 linux 中)
chown [OPTIONS] [Owner][:[Group]] FilenameOrFoldername
网络服务器用户(执行 php 脚本的用户)拥有该目录,则他具有写入权限,您可以将权限保留为 755。
7 5 5 = rwx rx rx
读写e x ecute _ _
第一位 = 所有者
第二位 = 组
第三位 = 所有其他用户
意味着只有所有者有写权限(他可以将文件添加到目录中,在这种情况下是 www-data 用户),组(www-data)有读取和执行权限,其余的也有读取和执行权限,所以有不应该是 755 的安全风险。
在这里你有一个工具可以计算正确的 -> chmod 数字转换
权利被写为所有者/组/其他,我认为您可以将 775 权利用于您的逻辑。
您可以将其存储在 Web 服务器(如 apache 或 nginx)无法访问但您的 Web 应用程序服务器(php、java servlet 等)可以访问的位置,并为其创建逻辑以从该文件夹中获取它并将其作为一个图像。这样,您可以确保用户上传的任何文件都不会被执行。
这将花费更多的服务器资源,因此您应该考虑这一点。
如果文件是由您的应用程序创建的,并且用户无法直接修改它们,那么授予其写入权限就没有问题。