侧边栏壁纸
  • 累计撰写 58 篇文章
  • 累计创建 67 个标签
  • 累计收到 1 条评论

技术案例|文件上传安全策略

lihaocheng
2023-01-31 / 0 评论 / 0 点赞 / 729 阅读 / 465 字
温馨提示:
晚上记得开启夜间模式哦

最近碰到的业务场景需要提供对外开放文件上传接口。开放这种接口会产生一些安全隐患。
最近对这种场景下的安全限制进行了思考。

0.啰嗦一句

我觉得这个问题最完美的安全限制就是不要提供这种接口。但这是不可能的,所以只能做一些操作来增加攻击者的攻击成本。

1.文件大小限制

必须限制文件大小,以防服务器OOM。
在项目中,限制文件大小可以通过 nginx 、tomcat 配置来限制上传文件大小,也可以在代码逻辑中进行限制。

2.使用云厂商的对象存储

应用云厂商的对象存储(如阿里云 OSS)可以避免,文件带病毒,攻击到自身服务器的问题。但是会带来额外的花费。

3.IP 限制、黑名单机制

通过限制某个 IP 的上传次数来防止恶意的请求。攻击者使用 IP 池,则该限制也可以被绕过。

4.文件类型限制

限制文件类型,以保证安全

4.1 文件后缀

这个是最容易限制的类型,但是可以通过窜改后缀绕过。

4.2 文件前缀

前缀虽然也可以窜改,但是窜改难度比窜改后缀要高。

5. 签名验证

前端对文件求 MD5 ,组合安全签名盐值,再求 MD5 求出签名值。后端验证签名之后才能进行上传。
这个做法存在的问题是,安全签名参数和计算方式都在前端代码中可以找到。同样可以绕过。

0

评论区