![]() |
1
1
虽然Barmar通常会在这里给出很好的建议,但在这种情况下,我不同意“目录应该由运行Web服务器的用户拥有”。 八进制权限中的每个数字,以及权限字符串中的每个“rwx”都与用户、组和任何其他uid(其中用户和组是文件上的属性)相关联。如果您的PHP脚本应该写入日志,那么它需要作为任何用户、组或其他人执行和写入目录的权限。虽然通常情况下,Web服务器uid应该是专用Web服务器主机上权限最低的帐户(因此通过“其他”授予访问权限),但情况并非总是如此。例如,如果主机上还有电子邮件MTA,那么更好的解决方案可能是770,通过组所有权授予Web服务器访问权限。将webserver uid设置为目录的所有者应该始终是一个自动的红色标志。 您设置的权限模型应该反映对文件的所有访问,从而启用 全部的 访问文件的相关方(web开发人员、备份软件、日志轮换服务帐户…)它还应该限制任何没有明确打算访问的人的访问。OP没有告诉我们与该目录相关联的用户/组/该目录是否可更改/谁需要什么访问权限)。
不一定——这应该 从不 可以是默认设置,但有时它是Web服务器uid可写内容的正确配置。人们对此感到兴奋的原因是,权限有问题的人通常认为这是一个快速解决方案,他们不应该向PHP提供对内容的写访问权限。 还有一个 大量的 此处暴露的安全漏洞(未提及其他缓解措施)。限制PHP可以写的地方的主要原因是防止最终用户注入代码。为了进行攻击,攻击者还必须能够调用他们在服务器上放置的代码。通常,日志包含用户提供的数据——因此允许PHP写入数据可以启动攻击的第一阶段。如果数据写在文档根目录中,那么它可以通过浏览器的URL直接寻址。 OP将权限更改为755并没有减轻这种攻击,并且造成了只有PHP代码和root用户才能在创建日志文件后删除它们的情况。 |
![]() |
2
0
该目录应为运行Web服务器的用户所有。否则,它需要world write权限,以便其他用户可以对其进行写入。
这可能是
|
![]() |
3
0
巴尔马的回答是解决方案。但为了准确记录我所做的事情,我在下面写下了详细的步骤。
跑步
我把那个文件夹的所有权从
现在一切正常,而我
|