用于图像上传的文件夹上的 CHMOD


CHMOD on a folder for image uploads

我正在将用户的文件(用于新闻文章)上传到基于 Linux 的站点上的特定文件夹。我已根据我在这里看到的其他问题将目录设置为 755......删除执行权限会导致那里的图像未被提供(抛出 403)。

但。。。我真的不明白这里的安全含义。如果我将文件夹保留为 755,这是否意味着用户可以通过我的上传表单上传脚本,然后执行它???

1 = execute / access directory
2 = write 
4 = read

首字母 7 表示所有者可以执行、读取和写入。 5 表示 1+4,即执行和读取。

中间位置5表示组成员可以读取结束执行,在最后一个位置表示每个人都可以读取和执行。

如果运行 Web 服务器的用户拥有设置为 755 的文件和目录,则只要在脚本中提供此类功能,用户就可以上载到该目录并从中读取。

用户上传的文件不应放在公众可以访问的目录中,然后才能确定它们是安全的。PHP 最初将它们放在/tmp/中。

然而,PHP文件不直接执行,它们只是被读入运行它的PHP。因此,在这种情况下,执行标志没有任何意义。如果要限制在目录中运行 PHP 脚本,可以使用 .htaccess -file。

在 linux(或我知道的任何其他操作系统)上没有单独的图像和其他文件类型的权限。任何图像都需要"执行"权限才能查看。

您必须限制用户仅上传脚本端的图像(例如.PHP上传者脚本必须在上传前检查文件扩展名)。我不能推荐任何确切的东西,因为您没有提到用户如何将图像上传到服务器。无论如何,在上传权限之前必须对其进行检查,在这里对您没有帮助。

chmod 命令分别设置所有者/组/世界的权限。 r 等于 4,w 2 和 x 表示执行等于 1。您为 world 设置 5 表示用户能够读取和执行。如果您希望使用户权限可写,则应设置最后一个数字7。