开放平台由于将内部大量的资源开放出去,需要特别考虑安全性问题。这里的安全性是泛指的。我觉得有以下几个方面需要考虑的。
安全(Safety)
这个是指数据丢没有丢失的问题
- 数据篡改
- 数据不一致(脏数据):有数据映射关系和分布式情况下很容易出现该问题
- 人为操作失误导致的数据丢失
为了解决这个问题,我们需要建立数据分级体系。不同的数据,我们有不同的安全级别。
- 绝对安全
- 磁盘损坏允许丢数据
- 断电允许丢数据
- 磁盘损坏和断电都允许丢数据
- Cache级别,允许丢失,被替换等
安全(Security)
这个是指数据被没有被窃取的问题
- 在用户端被窃取,如客户端获取密码,显示内容被快照等,需要客户保证安全
- 在服务器端被窃取,公司内部做严格的规章制度,存储的数据可以做加密
- 在网络传输中被窃取,通用解决方案(HTTPS,SSL)
为了保证Security,我们首先要对数据进行分级。
简单一点,可以分为:
- Public数据
- Private数据
认证鉴权(Authentication)
对于认证,是鉴别你是谁的问题
对于开放平台而言,如果涉及第三方账户,这个问题就是OpenID致力解决的问题。
对于鉴权,是鉴别你是否有此权力的问题
授权(Authorization)
这个是指是否给你某种权利的问题
对于授权,如果涉及用户,开放平台和第三方应用时,则OAuth就是解决这个问题的。