開放平台由於將內部大量的資源開放出去,需要特別考慮安全性問題。這裡的安全性是泛指的。我覺得有以下幾個方面需要考慮的。
安全(safety)
這個是指資料丟沒有丟失的問題
- 資料篡改
- 資料不一致(髒資料):有資料對映關係和分布式情況下很容易出現該問題
- 人為操作失誤導致的資料丟失
為了解決這個問題,我們需要建立資料分級體系。不同的資料,我們有不同的安全級別。
- 絕對安全
- 磁碟損壞允許丟資料
- 斷電允許丟資料
- 磁碟損壞和斷電都允許丟資料
- cache級別,允許丟失,被替換等
安全(security)
這個是指資料被沒有被竊取的問題
- 在使用者端被竊取,如客戶端獲取密碼,顯示內容被快照等,需要客戶保證安全
- 在伺服器端被竊取,公司內部做嚴格的規章制度,儲存的資料可以做加密
- 在網路傳輸中被竊取,通用解決方案(https,ssl)
為了保證security,我們首先要對資料進行分級。
簡單一點,可以分為:
- public資料
- private資料
認證鑑權(authentication)
對於認證,是鑑別你是誰的問題
對於開放平台而言,如果涉及第三方賬戶,這個問題就是openid致力解決的問題。
對於鑑權,是鑑別你是否有此權力的問題
授權(authorization)
這個是指是否給你某種權利的問題
對於授權,如果涉及使用者,開放平台和第三方應用時,則oauth就是解決這個問題的。
開放介面API安全性
開放介面時最基本需要考慮到介面不應該被別人隨意訪問,而我也不能隨意訪問到其他使用者的資料,從而保證使用者與使用者之間的資料隔離。這個時候我們就有必要引入token機制了。具體的做法 在使用者成功登入時,系統可以返回客戶端乙個token,後續客戶端呼叫服務端的介面,都需要帶上token,而服務端需要校...
關於安全性測試考慮的點
1 在登入頁面要考慮所輸入的密碼是否為加密的,且密碼是不能複製的。2 考慮某些關鍵url是否在非登入狀態是不可訪問的。3 考慮是否存在sql注入 html注入。例如輸入一些sql語句或者html js這些 是否會被執行。4 考慮登入頁面是否有登入錯誤的限制,例如多次登入失敗是否可以鎖定系統 是否有驗...
mysql安全性試驗 Mysql安全性測試
一 沒有進行預處理的sql語句 1.連線資料庫 conn mysql connect 127.0.0.1 3306 root 518666 if conn die could not connect mysql error 2.選擇資料庫 mysql select db mysql safe con...