软件工程之美
宝玉
Groupon资深工程师,微软最有价值专家
立即订阅
6621 人已学习
课程目录
已完结 54 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 你为什么应该学好软件工程?
免费
特别放送 | 从软件工程的角度解读任正非的新年公开信
学习攻略 | 怎样学好软件工程?
基础理论 (9讲)
01 | 到底应该怎样理解软件工程?
02 | 工程思维:把每件事都当作一个项目来推进
03 | 瀑布模型:像工厂流水线一样把软件开发分层化
04 | 瀑布模型之外,还有哪些开发模型?
05 | 敏捷开发到底是想解决什么问题?
06 | 大厂都在用哪些敏捷方法?(上)
07 | 大厂都在用哪些敏捷方法?(下)
08 | 怎样平衡软件质量与时间成本范围的关系?
“一问一答”第1期 | 30个软件开发常见问题解决策略
项目规划篇 (8讲)
09 | 为什么软件工程项目普遍不重视可行性分析?
10 | 如果你想技术转管理,先来试试管好一个项目
11 | 项目计划:代码未动,计划先行
12 | 流程和规范:红绿灯不是约束,而是用来提高效率
13 | 白天开会,加班写代码的节奏怎么破?
14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决
15 | 风险管理:不能盲目乐观,凡事都应该有B计划
16 | 怎样才能写好项目文档?
需求分析篇 (5讲)
17 | 需求分析到底要分析什么?怎么分析?
18 | 原型设计:如何用最小的代价完成产品特性?
19 | 作为程序员,你应该有产品意识
20 | 如何应对让人头疼的需求变更问题?
“一问一答”第2期 | 30个软件开发常见问题解决策略
系统设计篇 (4讲)
21 | 架构设计:普通程序员也能实现复杂系统?
22 | 如何为项目做好技术选型?
23 | 架构师:不想当架构师的程序员不是好程序员
24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?
开发编码篇 (7讲)
25 | 有哪些方法可以提高开发效率?
26 | 持续交付:如何做到随时发布新版本到生产环境?
27 | 软件工程师的核心竞争力是什么?(上)
28 | 软件工程师的核心竞争力是什么?(下)
29 | 自动化测试:如何把Bug杀死在摇篮里?
30 | 用好源代码管理工具,让你的协作更高效
“一问一答”第3期 | 18个软件开发常见问题解决策略
软件测试篇 (4讲)
31 | 软件测试要为产品质量负责吗?
32 | 软件测试:什么样的公司需要专职测试?
33 | 测试工具:为什么不应该通过QQ/微信/邮件报Bug?
34 | 账号密码泄漏成灾,应该怎样预防?
运行维护篇 (6讲)
35 | 版本发布:软件上线只是新的开始
36 | DevOps工程师到底要做什么事情?
37 | 遇到线上故障,你和高手的差距在哪里?
38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
39 | 项目总结:做好项目复盘,把经验变成能力
“一问一答”第4期 | 14个软件开发常见问题解决策略
经典案例解析篇 (7讲)
40 | 最佳实践:小团队如何应用软件工程?
41 | 为什么程序员的业余项目大多都死了?
42 | 反面案例:盘点那些失败的软件项目
43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?
44 | 微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?
45 | 从软件工程的角度看微服务、云计算、人工智能这些新技术
“一问一答”第5期(内含彩蛋) | 22个软件开发常见问题解决策略
结束语 (1讲)
结束语 | 万事皆项目,软件工程无处不在
软件工程之美
登录|注册

34 | 账号密码泄漏成灾,应该怎样预防?

宝玉 2019-05-18
你好,我是宝玉。我们日常总能看到各种与黑客和网络安全相关的新闻,而这其中大部分安全问题都和软件程序有关系。比如说像 CSDN 数据库泄漏事件、携程泄漏用户银行卡信息事件、有些电商网站用户可以篡改支付购买金额等等。
在软件项目开发时,安全是一个很容易被忽略的问题,但又可能会造成严重损失。所以我们在软件开发时有必要对安全问题引起重视,防患未然,构建安全软件。
今天,我将带你了解一下软件开发中的安全问题,学习如何构建安全的软件,以及出现了安全问题之后该怎么办。

安全问题本质是技术风险

如果你还记得《15 | 风险管理:不能盲目乐观,凡事都应该有 B 计划》这篇文章中的内容,我在其中提到,风险是指不确定的事件,一旦发生,将会造成消极的影响。
安全问题,本质上也是一种技术风险,没发生问题的时候一切都好,一旦发生就会有严重的影响。在对安全问题的应对上,你也可以借鉴对风险管理的方法来改进软件的安全问题,也就是风险识别、风险量化、应对计划和风险监控。
在做风险管理时,首先要做的就是识别风险和对风险量化,对于安全问题,你也可以先思考一下:软件项目中安全问题的主要来源是什么?搞清楚安全问题的来源,以及造成的后果,你就可以对软件中导致安全问题的情况有一个基本的识别和量化。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件工程之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • 一步
    老师问一个有关code review的问题,code review是指把代码放到大屏幕上大家一起看呢?还是类似github上的合并代码的时候发个pr,然后另一个人对需要合并代码进行检查呢?检查通过后才同意合并请求

    作者回复: 我觉得两种都算Code Review,只是形式不一样。

    通常PR这种Code Review应该是贯穿到日常开发过程中的,每个人都可以去Review,有1-2个人Review通过就可以。合并的话不止是Code Review通过,还需要自动测试通过。

    而大屏幕这种参与人多,成本高,属于偶尔针对特殊故障分析、学习研讨等目的才做的。

    2019-05-18
    2
  • 刘晓林
    订单和支付系统的那个例子里,支付系统的结果是返回给客户端,然后由客户端自己校对结果和订单或者把返回结果传给订单服务器校对吗?
    这样还是很不安全啊。为什么不是把支付结果返回给服务端呢?

    作者回复: 支付系统通过客户端返回订单系统,订单系统收到后需要再次根据订单跟支付系统确认,之前的漏洞就是出现在这个确认环节,只确认了是否收到,没有确认金额对不对。

    2019-05-22
    1
  • alva_xu
    据我所知,安全测试也分白盒测试和黑盒测试两种,黑盒测试可以用fortify或appscan 来查,白盒测试可以通过code review来完成。在代码方面,写许多规范,即使写得很全,如果用手工测试,也很难确定开发人员是否真的按规范来写代码。所以,一般使用code review的工具来做。老师有没有好的安全代码检查的工具推荐?

    作者回复: 我印象中Fortify也是可以做静态代码检查的。

    除了Fortify和AppScan,我知道的还有Veracode、Checkmarx和CodeSecure。

    但我没有实际用过,无法推荐哪个更合适。

    2019-05-20
    1
  • 纯洁的憎恶
    与风险管理一样,安全管理也需要从整个工程建设过程中整体考量。站在业务管理者角度,提高系统安全性的措施,可以在业务需求方面尽量避免安全负责度高的方案,在参与技术选型时尽可能兼顾安全要求。

    作者回复: 👍谢谢总结分享

    2019-05-18
    1
  • 小老鼠
    所有的Bug都是风险,属于技术风险范畴。

    作者回复: 👍

    2019-10-02
  • rocedu
    结合安全开发生命周期(SDL)就更好了。

    作者回复: 👍谢谢娄老师补充。

    2019-05-23
收起评论
6
返回
顶部