H. *_*nce 5 php apache permissions fwrite file-ownership
每当我想让PHP脚本将输出写入服务器上的文件时,我经常会遇到负面评论.
我用的fopen(),fwrite()和fclose()功能.
我知道如何实现这一目标的唯一方法是将输出文件的权限设置为0666,或者让它由"nobody"拥有(这是PHP在我们的Apache Web服务器上运行的用户).
因此,如果"0666"或"无人拥有"是安全风险,那么如何成功安全地允许PHP脚本写入文件?
感谢您就此主题分享指导.
如果您需要在上传后从 PHP 访问文件,那么需要使用允许 Web 服务器(在本例中为 apache)访问它们的权限来存储它们。人们所说的风险是您网站上的某些脚本可能会被欺骗而提供该文件。这是一种假设的风险,但许多内容管理系统都发生过这种风险。为了减轻这种风险:
getfile.php?file=1.txt有一条路径。2.txt隐藏名称或使其不排序。/etc/passwd等。如果您只需要删除文件并且不再提供它或再次通过 PHP 访问它,您还有更多选择。使用chmod或chown命令使其对 apache 用户来说不可读。如果您想更加偏执,可以使用 cron 脚本将文件(并重命名)移动到 PHP 源代码中未知的位置。至少,如果您的服务器被黑客攻击,入侵者无法直接进入该目录,但我们即将讨论转向操作系统安全性。