0

我正在使用一个Thumbnail插件。它将拇指存储在 webroot 上的文件夹中。但是当它试图保存拇指时,返回“不可写”错误。它的目录权限是755. 如果我将权限更改为777,错误就会消失。但我在某处读到777权限可能会导致安全问题..

我该怎么办?

4

3 回答 3

0

您可以更改所有者(例如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 数字转换

于 2012-08-23T10:48:07.250 回答
0

权利被写为所有者/组/其他,我认为您可以将 775 权利用于您的逻辑。

于 2012-08-23T10:49:21.627 回答
0

您可以将其存储在 Web 服务器(如 apache 或 nginx)无法访问但您的 Web 应用程序服务器(php、java servlet 等)可以访问的位置,并为其创建逻辑以从该文件夹中获取它并将其作为一个图像。这样,您可以确保用户上传的任何文件都不会被执行。

这将花费更多的服务器资源,因此您应该考虑这一点。

如果文件是由您的应用程序创建的,并且用户无法直接修改它们,那么授予其写入权限就没有问题。

于 2012-08-23T10:50:27.827 回答