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

时间:2013-11-11 19:53:50

标签: php

我将用户(用于新闻文章)中的文件上传到基于linux的网站上的特定文件夹。我已根据我在此处看到的其他问题将目录设置为755 ...并且删除执行权限会导致未提供服务的图像(403被抛出)。

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

3 个答案:

答案 0 :(得分:1)

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

初始值7表示所有者可以执行,读取和写入。 5表示执行和读取的1 + 4。

中间位置的

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

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

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

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

答案 1 :(得分:1)

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

您必须限制用户仅在脚本端上传图像(例如,PHP上传程序脚本必须在上传前检查文件扩展名)。我不能推荐任何确切的事情,因为您没有提到用户如何将图像上传到服务器。无论如何必须先检查它,然后上传权限对你没有帮助。

答案 2 :(得分:1)

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