職責單一化,各司其職,后端只負責Api接口編寫提供給各種不同類型的客戶端去調(diào)用,但是客戶端和服務器端調(diào)用是要有權限限制的,不能任何一個客戶端都可以隨便調(diào)用我們的接口(這里面的緣由相信大家都知道吧,當然我就默認你們都知道),再者我們都知道http是明文傳輸,被抓包可可以修改相應參數(shù),當然如果你使用了https就相對安全了不少!
成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的十多年時間我們累計服務了上千家以及全國政企客戶,如成都封陽臺等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術實力獲得客戶的一致贊美。舉一個很簡單的栗子,×××的接口大家都調(diào)用過吧,當然肯定有沒調(diào)用過的,沒關系,沒有調(diào)用過的人也是能明白我接下來要講的事情:×××會有一個sign的簽名,就是思夢php上面所說的權限認證機制了
下面思夢php給大家講的只是其中的原理,我們可以根據(jù)所講知識繼續(xù)擴展,完善成為你自己的一套程序。
主要使用的工具:thinkphp5/PHP
(1)首先客戶端和提供服務的服務器加密方式要一致AES、MD5都可以
(2)規(guī)定好參數(shù)
下面的程序是規(guī)定了三個參數(shù):version(api的版本)、time(請求時間)、sign(加密好的簽名)
當然這些參數(shù)我們可以根據(jù)你的實際代碼業(yè)務而定,不一定設置一樣,本次程序的參數(shù)是設置在header頭里面進行傳輸,為了和body里面的業(yè)務參數(shù)區(qū)分開來,當然這里也可以不一致,根據(jù)你的業(yè)務而定
注意點:客戶端和服務端時間不一致的問題,我們要在服務器提供一個時間的方法來驗證時間的有效性
接下來就是我們在一個入口文件里面去定義一個驗證的方法,保證我們接口的安全性
以上就是代碼的示例:
(1)首先定義了一個BaseController
(2)定義一個構造方法,觸發(fā)驗證機制
(3)在驗證方法里面獲取header信息,進行加密驗證,如果第一次方法將該sign作為鍵值緩存起來并設置有效期,保證請求的唯一性
(4)之后判斷限制請求的時間,如果超時將拋棄此次請求
當然這是在http上面做的一些操作,如果使用了https已經(jīng)相對安全多了!
以上只是一個拋磚引玉,小伙伴可以自己再去完善
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。