我刚刚开始使用php上传文件。
根据我的理解,您需要将文件夹的属性设置为777,以便任何人都可以上传到该位置。
那很好,我显然只保留那些不敏感的信息,它的基本图像会显示给公众。
但是,如果有人知道我的服务器文件夹中的图像名称,或者只有php文件在我的服务器上才能运行,那么有人不仅可以运行删除语句吗?
即删除myimage.png
基本上我的问题不是正常的安全预防措施,例如限制只有.png的上传,使用basename等我是否需要采取额外的安全措施来防止有人删除该文件夹中的文件或者只能通过脚本完成在我的网络服务器上?
我不会使用任何post方法来删除图像或类似的东西,但我只是不确定它是否可以利用具有777权限的文件夹并执行未经授权的东西,因为我完全访问该文件夹。
答案 0 :(得分:1)
通过777
,您实际上是对服务器所在机器的用户所有进行读/写/执行访问。请注意,这并不意味着即使网站访问者也可以直接读/写/执行 。它总是你的网络服务器(Apache)来做它。
但是,如果有人知道我的服务器文件夹中的图像名称,或者只有当php文件在我的服务器上时才能运行删除语句
如果你的PHP脚本有漏洞,那么,是的。如果你的网络服务器有洞,那么,是的:)
我是否需要对777文件夹进行额外保护
是的,您可以使用更严格的权限。将公共上传文件夹的所有者设为apache(主要是www-data
),设置权限仅为755,如果组想要写入,则可能为775。
答案 1 :(得分:0)
您可以将文件夹权限777更改为755或744。