Php 使用fwrite时777权限是否危险?

Php 使用fwrite时777权限是否危险?,php,forms,security,fwrite,Php,Forms,Security,Fwrite,我正在测试我的php表单,并将所有请求记录到一个单独的文件中。其目的是查明该表单是否被用于垃圾邮件,并希望消除它 使用fwrite()记录请求时,使用777权限是否危险或没有必要?另一种选择是什么?您只需要应用程序正在运行的用户的权限就可以写入文件。管理员有时也可以方便地读取文件。除此之外,没有人需要访问。因此,0640是此类文件最合理的权限 特别是,没有人需要执行该文件,该文件是用0777设置的位之一。仅目录需要执行位。(还有可执行程序,但这里没有。) 对于获得正确的权限来说,这是非常有用的。

我正在测试我的php表单,并将所有请求记录到一个单独的文件中。其目的是查明该表单是否被用于垃圾邮件,并希望消除它


使用
fwrite()
记录请求时,使用777权限是否危险或没有必要?另一种选择是什么?

您只需要应用程序正在运行的用户的权限就可以写入文件。管理员有时也可以方便地读取文件。除此之外,没有人需要访问。因此,
0640
是此类文件最合理的权限

特别是,没有人需要执行该文件,该文件是用
0777
设置的位之一。仅目录需要执行位。(还有可执行程序,但这里没有。)

对于获得正确的权限来说,这是非常有用的。使用
umask
设置权限模板,而不是创建具有显式权限的文件。由于目录需要可执行权限,而文件不需要,
umask
将比显式设置更合理地屏蔽不同类型文件的权限。例如,在您的情况下:

umask(027); // Owner permissions unchanged, Group permissions mask 2, drop all other permissions
fopen('foo', 'w', 0777); // Creates file with *0640* permissions, because of mask
mkdir('bar', 0777); // Creates dir with *0750* permissions, because of mask

777权限由父目录或php设置设置为默认值。 您可以通过
chmod(“/somedir/somefile”,0640)来更改它

是的,这是雄心勃勃的,对表单创建的文件拥有可执行权限是危险的


祝你好运

不需要执行(最后一位)当我对文件夹应用640个权限时,我无法再查看表单…@user3216933文件应为0640,dirs应为0750。前导零表示数字是八进制的–如果您不使用前导零,则它是一个完全不同的值。请查看我的更新并使用
umask
。我制作了所有文件0640和目录0750。但是我现在得到了一个“禁止”错误,而不再是404。@user3216933在什么情况下,是什么给了你这个错误?我只是在查看index.php页面(表单所在的位置)当文件权限为0640时,我无法再访问它。默认设置的
0777
权限用于生成正常权限。(还要注意,前导零对于解释为八进制的值很重要。)
umask(027); // Owner permissions unchanged, Group permissions mask 2, drop all other permissions
fopen('foo', 'w', 0777); // Creates file with *0640* permissions, because of mask
mkdir('bar', 0777); // Creates dir with *0750* permissions, because of mask