開放平臺由於將內部大量的資源開放出去,需要特別考慮安全性問題。這裏的安全性是泛指的。我覺得有以下幾個方面需要考慮的。
安全(Safety)
這個是指數據丟沒有丟失的問題
- 數據篡改
- 數據不一致(髒數據):有數據映射關係和分佈式情況下很容易出現該問題
- 人爲操作失誤導致的數據丟失
爲了解決這個問題,我們需要建立數據分級體系。不同的數據,我們有不同的安全級別。
- 絕對安全
- 磁盤損壞允許丟數據
- 斷電允許丟數據
- 磁盤損壞和斷電都允許丟數據
- Cache級別,允許丟失,被替換等
安全(Security)
這個是指數據被沒有被竊取的問題
- 在用戶端被竊取,如客戶端獲取密碼,顯示內容被快照等,需要客戶保證安全
- 在服務器端被竊取,公司內部做嚴格的規章制度,存儲的數據可以做加密
- 在網絡傳輸中被竊取,通用解決方案(HTTPS,SSL)
爲了保證Security,我們首先要對數據進行分級。
簡單一點,可以分爲:
- Public數據
- Private數據
認證鑑權(Authentication)
對於認證,是鑑別你是誰的問題
對於開放平臺而言,如果涉及第三方賬戶,這個問題就是OpenID致力解決的問題。
對於鑑權,是鑑別你是否有此權力的問題
授權(Authorization)
這個是指是否給你某種權利的問題
對於授權,如果涉及用戶,開放平臺和第三方應用時,則OAuth就是解決這個問題的。