代码精进之路
范学雷
Oracle首席软件工程师,Java SE安全组成员,OpenJDK评审成员
立即订阅
6315 人已学习
课程目录
已完结 47 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 你写的每一行代码,都是你的名片
免费
第一模块:代码“规范”篇 (16讲)
01 | 从条件运算符说起,反思什么是好代码
02 | 把错误关在笼子里的五道关卡
03 | 优秀程序员的六个关键特质
04 | 代码规范的价值:复盘苹果公司的GoToFail漏洞
05 | 经验总结:如何给你的代码起好名字?
06 | 代码整理的关键逻辑和最佳案例
07 | 写好注释,真的是小菜一碟吗?
08 | 写好声明的“八项纪律”
09 | 怎么用好Java注解?
10 | 异常处理都有哪些陷阱?
11 | 组织好代码段,让人对它“一见钟情”
12丨组织好代码文件,要有“用户思维”
13 | 接口规范,是协作的合约
14 | 怎么写好用户指南?
15 | 编写规范代码的检查清单
16丨代码“规范”篇用户答疑
第二模块:代码“经济”篇 (14讲)
17 | 为什么需要经济的代码?
18丨思考框架:什么样的代码才是高效的代码?
19 | 怎么避免过度设计?
20 | 简单和直观,是永恒的解决方案
21 | 怎么设计一个简单又直观的接口?
22丨高效率,从超越线程同步开始!
23 | 怎么减少内存使用,减轻内存管理负担?
24 | 黑白灰,理解延迟分配的两面性
25 | 使用有序的代码,调动异步的事件
26 | 有哪些招惹麻烦的性能陷阱?
27 | 怎么编写可持续发展的代码?
28 | 怎么尽量“不写”代码?
29 | 编写经济代码的检查清单
30丨“代码经济篇”答疑汇总
第三模块:代码“安全”篇 (14讲)
31 | 为什么安全的代码这么重要?
32 | 如何评估代码的安全缺陷?
33 | 整数的运算有哪些安全威胁?
34 | 数组和集合,可变量的安全陷阱
35 | 怎么处理敏感信息?
36 | 继承有什么安全缺陷?
37 | 边界,信任的分水岭
38 | 对象序列化的危害有多大?
39 | 怎么控制好代码的权力?
40 | 规范,代码长治久安的基础
41 | 预案,代码的主动风险管理
42 | 纵深,代码安全的深度防御
43 | 编写安全代码的最佳实践清单
44 | “代码安全篇”答疑汇总
加餐 (1讲)
Q&A加餐丨关于代码质量,你关心的那些事儿
结束语 (1讲)
结束语|如何成为一个编程好手?
代码精进之路
登录|注册

35 | 怎么处理敏感信息?

范学雷 2019-03-25
敏感信息,是一个常见的词汇。如果我们接收到了广告信息,骚扰电话,垃圾邮件等,都表明我们个人的敏感信息或多或少地被泄露了。
有些敏感信息的泄露,也许仅仅会使我们感到不便,比如一小部分的垃圾邮件,但有些敏感信息的泄露,会影响我们的消费倾向或者消费决策,损害我们的经济利益,甚至威胁我们的生命安全,比如医疗记录和行程安排的泄露。
在计算能力已经不再奢侈的今天,看似毫不相干的数据甚至都可以推演出非常关键的隐私信息。比如,你每周三次以上在早晨出发的地方,大概率就是你家的位置。只有几十个人知道你家的位置,这是一件正常的事情;可是如果有 10 亿人知道,这就麻烦了,几乎不可能发生的小概率事件随时都有可能光临。
我们一定要有保护敏感信息的意识,不管是我们自身的,还是别人的。在互联网世界里,敏感信息真的是无处不在,你知道有哪些编码技术可以保护敏感信息吗?

什么是敏感信息?

要想保护敏感信息,首先要识别敏感信息。什么是敏感信息呢? 其实,这个问题本身就是一个特别有意思的话题。你要是查阅关于敏感信息定义的不同文献,就可以体会到不同的立场和不同的利益纠葛。敏感信息的界定范围,也透露了游戏规则制定者对于敏感信息保护的力度和态度。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《代码精进之路》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • hua168
    我是说是不是产生的异常写进日志里,然后给用户展示的是友好的错误页面(web的话),
    如果异常的敏感信息不写进日志文件或日志系统里,那怎么排错?

    如果是敏感的数据能放数据库,如mysql,先加密方进去,如果不能放进数据库的数据,如连接数据库的代码配置文件中的用户名和密码,是不是也要加密?我们之前的公司从不加密的。

    作者回复: 严肃的敏感信息内部人士也不能够轻易获取。敏感信息写到日志里,是一个很典型的安全漏洞。 想一想,一个开发者看到了日志,或者读取了数据库,就知道了客户的银行账号密码,他要多么高尚自律才可以抵御住这种诱惑?这不是逼着人家想入非非吗?

    配置文件里的用户名和密码,一般是系统的账号,不是客户的信息,不过也要严格地设置文件的权限。

    非常敏感的数据,比如密码,不建议明文放数据库。一般的敏感信息,比如医疗记录,可以明文放数据库,不过数据库本身的权限管理要做好。

    有一些敏感数据,如果和人脱离开来,就没什么意义了。 比如,患有高血压,如果不知道病人特征,数据写到日志也没什么问题。 这也是一种脱敏处理。

    2019-03-27
    1
    3
  • hua168
    还有数据库中也有敏感信息,一般是用MD5加密

    作者回复: MD5是杂凑函数,不能加密。另外,MD5的破解几分钟的事,安全性不够了,不建议再用了。

    2019-03-27
    1
  • hua168
    异常信息不是写进日志,然后制定一个友好的页面给用户,这样处理的吗?

    作者回复: 没看明白问题。 携带敏感信息的异常信息,也不能写到日志里。

    2019-03-27
    1
  • hua168
    老师,JDK API文档这么多类,都要看一遍吗?
    类和接口最多就是java和C#,上万哪记得这么多?😂
    是不是先大概看下标题,知道有哪些,用到再细看?

    作者回复: 没人能都看一遍的。先了解概念,知道有这么回事(这一点非常重要);选型的时候,再深入一点看架构和设计;用的时候再仔细看接口规范的细节,规范有含糊的地方,甚至还要看源代码。

    比如异步接口,知道Java能够提供异步编程能力,异步编程有什么好处,就够了。 需要异步编程的时候,再去研究Java异步编程到底是怎么设计的,应用该怎么做。设计实现自己的异步代码的时候,再去抠接口规范的细节。

    2019-03-27
    1
  • 天佑
    嗯,敏感信息保护要从全生命周期的视角去看待,需要技术与管理双管齐下,有时还要取点巧,还要根据当下权衡效率与安全之间是否平衡,有必要法务介入,法律是安全底线。当然这些过程“撕逼”,“扯皮”少不了的,良好的沟通能力也是不可或缺。。。
    2019-03-25
    1
收起评论
5
返回
顶部