這篇文章帶給大家的內容是關於php介面安全:php介面加密的四個方案,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
身為網路Coder,無論你是前端或後端你都要對http請求要有一定的了解,知道http特性,要清楚的了解http裡面的Request與Response是什麼,知道為什麼網站會存在cookie,session,驗證碼的意義和必要性。因為探討APP介面的安全性就是在探討HTTP請求的安全性。
一般在PC端,我們是透過加密的cookie來做會員的辨識與維持會話的;但是cookie是屬於瀏覽器的本機儲存功能。 APP端不能用,所以我們得透過token參數來辨識會員;而這個token該如何處理呢?
首先,先說說在做該介面加密前,我一共經歷的四個方案:
方案一
與APP端開發人員約定特定的md5組合演算法,然後兩端比對一下,如果相同就allow,不相同就deny;
但是,這也是不安全的,如果APP程式被反編譯,這些約定的演算法就會暴露,特別是在安卓APP中,有了演算法,完全就可以模擬介面請求通過驗證;
#方案二
資料庫會員表的password是帶了隨機密竄並且經過雙重加密的md5值;在用戶登入的時候,我返回會員相應的uid和password,password雖然是明文的,別人知道也不能登入,畢竟是經過加密的,然後每次請求接口的時候user_id=333&token=aa37e10c7137ac849eab8a2d5020568f
,透過主鍵uid可以很快的找到當前uid對應的token,然後再來比對;
但是這樣想法是too yang too simple的token,然後再來比對;
方案三透過對稱加密演算法,此加密演算法將
uid 網站公鑰
進行時效加密,在一定時效內可用。當會員登入成功時,伺服器端對該ID加密後返回給客戶端,客戶端每次請求介面的時候帶上該參數,伺服器端透過解密認證;
方案四會員登入的時候請求登入接口,然後伺服器端返回給客戶端一個token,該token生成的規則是
網站公鑰當前uid 當前時間戳一段隨機數字
雙重加密,根據需求決定是把該token放進cache等一段時間自動失效,還是放進資料庫(如果要放進資料庫的話,單獨拎出一張表來,順便記錄用戶的登錄,登出時間),在用戶登出登入的時候改變一下,確保該token只能在用戶人為登出登入之間有用。
資料格式最好使用JSON格式數據,因為JSON有較好的跨平台性。在生成JSON的時候,要注意json的兩種格式:對象(字典) 與數組;mobile端開發語言中沒有類似PHP中的foreach不能遍歷對象,只能遍歷數組,他們對對象的操作一般都是通過鍵名去取鍵值。
以上是php介面安全:php介面加密的四個方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!