加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 保护文件上传安全

发布时间:2020-12-13 21:45:40 所属栏目:PHP教程 来源:网络整理
导读:几年前我在一家小公司写了一个网站,当时我正在读书.我已经意识到我的安全技能并不像他们应该的那样好,并且最近该网站遭到黑客攻击并且使用用于图像上传的表单上传了恶意的 PHP代码. 我已经转移到.NET世界,虽然我知道如何在.NET中保护文件上传,但我真的不知道
几年前我在一家小公司写了一个网站,当时我正在读书.我已经意识到我的安全技能并不像他们应该的那样好,并且最近该网站遭到黑客攻击并且使用用于图像上传的表单上传了恶意的 PHP代码.

我已经转移到.NET世界,虽然我知道如何在.NET中保护文件上传,但我真的不知道如何使用PHP来完成它.很抱歉,我无法提供任何源代码,因此我不希望任何人发布我的代码的任何直接修复.

我希望有人可以向我展示一个很好的服务器端分析方法,以确保上传的$FILES数组内容实际上是一个图像或一个音频文件,或者至少它不是一个php文件.

解决方法

很高兴你问.这是一个棘手的主题,很少有应用程序开发人员意识到安全风险.

我将向您概述您应采取的方法,并阅读一些内容以了解更多信息.请务必阅读其他阅读材料,因为我的摘要不完整.

摘要:

>在单独的域上托管用户上传的内容.这是您可以采取的最重要和最可靠的防御措施.
>检查上传文件的MIME类型,以确保它在安全MIME类型的白名单中.生成一个新的随机文件名以将其保存在.对于某些文件类型(例如图像),请考虑对其进行重新编码(例如,转换为PNG,或使用ImageMagick将其从其文件类型转换为相同的文件类型),因为这可能会使某些攻击失败.
>下载/检索文件时,请确保将Content-Type:标头显式设置为安全MIME类型.还设置了X-Content-Type-Options:nosniff标头.如果您不打算在浏览器中查看该文件,请发送Content-Disposition:附件标题,以使浏览器将其视为文件下载.
>扫描文件上传中的病毒或恶意软件.

读:

> What steps should be taken to validate user uploaded images within an application?
> MIME sniffing protection
> Is it safe to store and replay user-provided mime types?
> Is it safe to serve any user uploaded file under only white-listed MIME content types?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读