Web安全之不安全的设计类漏洞详解及预防

如何理解不安全的设计类漏洞

不安全的设计(Insecure Design)漏洞主要指在系统设计和架构设计中,由于不恰当的设计导致的安全风险。不安全的设计类漏洞种类非常多,使用一句话来说就是控制机制缺失或控制机制失效。需要注意不安全的设计和不安全的实现的区别,因为它们有不同的原因和预防措施。即使安全的设计,在实现过程中仍然可能出现漏洞。不安全的设计即使完美得被实现出来,也依然是有问题的,因为在设计过程中就没有考虑针对特定攻击的安全防范措施。之所以会出现不安全设计类漏洞,主要是因为缺少对系统风险的充分分析,无法做出对应的安全设计。

不安全的设计类漏洞预防措施

  • 建立并使用安全开发流程,协同专业安全人员进行安全和隐私风险评估;

  • 建立并使用安全设计模式库;

  • 为系统(特别是关键的业务逻辑、访问控制逻辑、授权和鉴权等)面临的威胁建立模型,明确可能来自的攻击有哪些方面;

  • 使用代码静态分析工具和动态分析工具来扫描程序的安全漏洞;

  • 编写单元和集成测试以验证所有关键流程都能抵抗威胁模型。

常见的不安全的设计类漏洞及预防措施

1、对于文件上传功能,需要对文件大小、类型进行严格检查和控制,固化存储路径,文件上传的目录设置为不可执行,使用随机数改写文件名和文件路径,防止攻击者通过总结规律检索出其他文件。

不限制文件类型的话,可以上传任意类型的文件。上传的文件对应用程序来说是有风险的,在许多攻击中,第一步是向要攻击的系统注入一些代码。然后找到一种方法来执行代码。使用文件上传可以帮助攻击者完成第一步。

2、导出文件功能,禁止使用先生成公共读的下载链接给到客户端下载的方式,需要使用更安全的方式来实现,例如二进流制形式下载。

返回公共读权限的文件链接的话,如果是比较敏感的文件,例如在管理后台导出的用户数据,可能会导致用户数据泄露。

3、Web前端开发中,敏感信息不要存储在本地,所有在存放到 cookie 或者 localStorage 里的信息都要进行加密。

很多开发者为了方便,把一些个人信息不经加密直接存到本地或者 cookie,这样做是非常不安全的,黑客很容易就能拿到用户的信息。

4、登录入口应具有防止暴力或撞库猜解(利用已泄露的密码字典进行批量登录尝试)的措施,超过1次验证失败自动启用验证码,超过多次验证失败自动启用账户锁定机制以限制其访问

登录入口如果没有设计防止暴力破解措施,黑客可以不断尝试一个用户的密码,直至尝试成功。

5、安全地处理失败的身份校验,如使用"用户名或密码错误"来提示失败而不是使用密码错误,防止泄露过多信息。

输入账号密码,如果返回账户不存在或者密码不正确,如果再没有疲劳度控制的情况下就可以遍历出程序的所有账户和对应密码。

列出的这五条只是不安全的设计类漏洞的很小一部分,更多的相关漏洞需要根据漏洞定义去体会和理解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路多辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值