软件工程之美学习笔记三十五 34 | 账号密码泄漏成灾,应该怎样预防?

《软件工作之美》材料地址:https://time.geekbang.org/column/article/95818

安全问题本质是技术风险

软件中的安全问题来源主要有三类

  • 恶意输入 如SQL注入、XSS跨站脚本攻击;对策是对用户输入的数据,做严格的校验,格式化。

  • 假冒身份 对于用户身份的校验比较弱;对策是身份验证,甚至双重验证。

  • 数据泄露 敏感数据存储的地方有风险,比如日志中、明文放在数据库中;对策是提前做好预防措施,对敏感数据进行加密。

如何预防

最好的方式就是在整个生命周期中都做到重视安全问题

  1. 需求阶段
    需求阶段就提出了安全性的需求,设计、实现和测试时自然不会遗漏掉安全方面的内容

  2. 设计阶段
    最重要的事就是要把安全加入到设计目标,架构设计方案的评审时,也需要增加安全方面的评审

    设计原则可参考
    (1) 攻击面最小化 (比如数据库不能开放给外网访问,单点登录等)
    (2) 权限最小化(就是对于系统的用户、文件访问、进程运行等,都只给予其能拥有的最小权限,这样可以保证一个应用程序或者网站被攻击、破解,能将损害降到最低)。
    (3)纵深防御(从不同的维度去实施安全保护措施,站在系统交易的整体去考虑安全性)

  3. 开发阶段
    要有良好的编码习惯和安全意识
    (1)编码规范中加入安全相关内容
    (2)要有代码审查
    (3)增加安全相关的自动化测试

  4. 测试阶段
    借助安全测试工具,增加对安全性方面的测试

  5. 上线维护
    上线部署时,不部署源代码,只对编译后程序部署;删除 Debug文件;对服务器进行安全设置,比如限制端口,限制文件系统访问权限等

如果真的出现安全问题怎么办?

  1. 应急流程
  2. 查找漏洞
  3. 总结经验

我的留言

据我所知,安全测试也分白盒测试和黑盒测试两种,黑盒测试可以用fortify或appscan 来查,白盒测试可以通过code review来完成。在代码方面,写许多规范,即使写得很全,如果用手工测试,也很难确定开发人员是否真的按规范来写代码。所以,一般使用code review的工具来做。老师有没有好的安全代码检查的工具推荐?
老师回复: 我印象中Fortify也是可以做静态代码检查的。
除了Fortify和AppScan,我知道的还有Veracode、Checkmarx和CodeSecure。
但我没有实际用过,无法推荐哪个更合适。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值