使用fwrite 777权限是否危险?

时间:2014-05-05 13:35:19

标签: php forms security fwrite

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

使用fwrite()记录请求时,使用777权限是危险还是不必要?有什么替代方案?

2 个答案:

答案 0 :(得分:5)

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

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

0640 = user/owner read/write, group read only, other no access
0777 = user/owner read/write/execute, group read/write/execute, other read/write/execute

umask对于正确获取权限非常有用。您可以使用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

答案 1 :(得分:0)

777权限由父目录或php设置默认设置。 您可以按chmod("/somedir/somefile", 0640);进行更改 Check manual

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

祝你好运!