今天继续修炼,本章讲得是安全:
好篱笆造出好邻家,在绝大多数情况下,这并不是因为攻击者非常聪明,他们甚至都谈不上有多大能力,开发人员实在太粗心了。
那程序员要在哪些地方细心呢?有5条基本原则:
- 将攻击面的面积最小化
- 最小特权原则
- 安全的默认值
- 敏感数据要加密
- 维护安全更新
今天重点讲一下系统攻击面,系统攻击面的面积指:
攻击者可以在其中输入数据、提取数据或调用服务执行的所有访问点的总和。
输入数据是指系统从外界接收的数据,如果粗心了,很可能出现sql注入这样的安全漏洞。
输出数据是系统产生的数据,比如一些错误信息和提示,比如“密码错误”或者“系统异常的堆栈信息”,过多的细节可能会暴露系统的漏洞。
还有一个就是不需要身份验证就可以访问的数据,比如按照oid就可以直接访问的订单信息。
最后一个是一些过期的用户,比如离职的管理员依然掌握了一些重要的密码,而这些密码一直未被更改过。
简单来说,这些可以被攻击者利用的访问点越多,系统被攻击的攻击面就越大。
网友评论