1. 程式人生 > >如何保證http傳輸安全性

如何保證http傳輸安全性

目前大多數網站和app的介面都是採用http協議,但是http協議很容易就通過抓包工具監聽到內容,甚至可以篡改內容,為了保證資料不被別人看到和修改,可以通過以下幾個方面避免。

重要的資料,要加密,比如使用者名稱密碼,我們需要加密,這樣即使被抓包監聽,他們也不知道原始資料是什麼(如果簡單的md5,是可以暴力破解),所以加密方法越複雜越安全,根據需要,常見的是 md5(不可逆),aes(可逆),自由組合吧,你還可以加一些特殊字元啊,沒有做不到只有想不到, 舉例:username = aes(username), pwd = MD5(pwd + username);。。。。。

非重要資料,要簽名,簽名的目的是為了防止篡改,比如http://www.xxx.com/getnews?id=1,獲取id為1的新聞,如果不簽名那麼通過id=2,就可以獲取2的內容等等。怎樣簽名呢?通常使用sign,比如原連結請求的時候加一個sign引數,sign=md5(id=1),伺服器接受到請求,驗證sign是否等於md5(id=1),如果等於說明正常請求。這會有個弊端,假如規則被發現,那麼就會被偽造,所以適當複雜一些,還是能夠提高安全性的。

登入態怎麼做,http是無狀態的,也就是伺服器沒法自己判斷兩個請求是否有聯絡,那麼登入之後,以後的介面怎麼判定是否登入呢,簡單的做法,在資料庫中存一個token欄位(名字隨意),當用戶呼叫登陸介面成功的時候,就將該欄位設一個值,(比如aes(過期時間)),同時返回給前端,以後每次前端請求帶上該值,伺服器首先校驗是否過期,其次校驗是否正確,不通過就讓其登陸。(redis 做這個很方便哦,key有過期時間)

備註:保證安全的方法有很多種,以上是本人一時興起,簡單總結幾條加以備忘,以上有什麼漏洞和需要補充,希望大家指出來,相互學習,謝謝!