黑客业务

24小时接单的黑客,黑客业务,黑客怎么找,网络黑客,黑客技术

开发文件上传功能稍不注意就会引发安全漏洞

1. 前言

文件上传在日常开发中很常见,但潜在的安全问题很容易被忽视。这些问题一旦在开发中被忽视,就会导致系统安全漏洞。

2. 文件上传开发的安全建议

通常,我们上传的文件由客户端控制,这给了不善良的人一个机会。一些危险的可执行脚本可能会被注入服务器。因此,胖哥总结了以下建议。

过滤文件类型

开发人员应有一个过滤清单,允许上传的文件类型仅限于业务功能所需的文件类型。不允许列表过滤器,不得直接接受文件名及其扩展名,前端应说明清单。这是大多数开发人员做得很好的必要步骤。

处理文件名称

不能使用原始文件名!这是一个容易被忽视的问题。许多开发人员喜欢根据原始文件名直接转存上传文件。

  • //Springboot不建议在开发过程中使用此名作为转存名称。你应该生成一个新名字来映射这个名字
  • StringoriginalFilename=MultipartFile.getOriginalFilename();
  • 这是不安全的。虽然大多数/\:<>?字符已经过滤掉了,但是. * % $,这些脚本中的常客仍然可以包含在文件名中,因此不能使用原始文件名。您应该指定一个算法来重新命名。建议使用摘要算法来确定文件名。例如,文件名可以是文件名和日期 MD5 哈希。

    如果业务需要原始文件名称,可以存储新命名和原始名称的映射。

    摘要校验

    无论是上传、修改还是下载文件,服务端都需要进行摘要验证(MD5、SHA256),为防止文件与预设不一致。必要时还建议对客户端进行摘要验证。

    限制大小

    如果使用 Spring 进行开发的话已经做了限制,如果该限制不满足业务需要,可以修改,但是不能移除限制,否则会导致拒绝服务攻击。

    访问限制

    如果不是业务需要,只有身份验证和授权的用户才能使用文件上传功能。不然你的系统就成了别人的免费图床。

    行为审计

    对于安全,我们只能被动防御。因此,建议上传文件的操作有审计日志,审计日志不应受文件系统的影响,以便在发生安全事件时快速定位问题。

    3. 总结

    事实上,有很多安全要点需要考虑,但大多数都使用第三方存储,如果使用自主开发的系统,可能需要考虑更多。但对于普通的开发来说,这就足够了。

    本文转载自微信公众号「 码农小胖哥」,可通过以下二维码关注。转载本文请联系农小胖哥微信官方账号。

       
    • 评论列表:
    •  囤梦徒掠
       发布于 2022-05-29 00:22:40  回复该评论
    • 开发过程中使用此名作为转存名称。你应该生成一个新名字来映射这个名字StringoriginalFilename=MultipartFile.getOriginalFilename();这是不安全的。虽然大多数/\:<>?字符已经过滤掉了,但是. * % $,这些脚本中的常客仍然可以包含

    发表评论:

    Powered By

    Copyright Your WebSite.Some Rights Reserved.