使用fwrite 777权限是否危险?

use*_*933 3 php forms security fwrite

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

当使用fwrite()记录的要求,是危险的或不需要使用777个权限?有什么选择?

koj*_*iro 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)