我已经使用 PHP 构建了一个小型上传系统,目前它运行良好,然而我遇到的问题是我让它运行的方式。
我没有太多的安全背景,但这是我目前正在努力学习的。
因此,为了使文件上传系统正常工作,我需要更改要将文件放入的文件夹的权限。
所以我有一个 Windows 服务器,我找到文件夹 > 右键单击 > 属性 > 安全 > 编辑
这里有 5 个组的列表
- 创造者
- 系统
- 管理员
- 用户
- 受信任的安装程序
因此,当我上传文件时,它会上传到临时文件,然后系统将文件移动到正确的位置,比如说 /vids 。
最初,“用户”组的权限在写入权限上被设置为“拒绝”,这意味着用户组无法将文件写入此位置,这意味着当系统尝试移动文件时会出现权限错误。
因此,我将“用户”组的写入权限更改为“允许”写入,文件上传和移动就可以正常工作。但是,我担心从安全角度来看,这是不好的做法?
据我所知,如果它具有写入权限,攻击者可以将脚本放在该位置然后执行它,这是正确的吗?如果是这样,我该如何解决这个问题并使其更安全?
答案1
攻击者当然可以上传某种形式的恶意代码并运行它,但有几种方法可以缓解这种情况。不允许直接访问文件,而只能通过某种中间脚本。将上传限制为仅选定的几种文件类型(图像类型,或仅文本文件等)。如果我理解你的问题,权限不是需要担心的事情。