網際網路開發 HTTP介面安全設計

2021-07-30 15:56:28 字數 1112 閱讀 8306

作為http介面的服務端,要能控制你本身自有資料的讀寫許可權。

如果任何客戶端在任何時間都能讀寫你的資料,那麼使用者資料很容易被修改。這就好比沒加使用者登入就可以訪問和讀寫所有的系統資料。根本沒有安全性可言了。

方案1:(加密時間戳+可變的加密串)進行安全控制

原始請求:

安全控制後的請求:

×tamp=543fafaf678vnkdnfgsakjfdf676&key=hgyt65475gt57uabnjkh677677kkjj

時間戳timestamp說明:

(1)作用是:固定時間範圍內,減少同一請求被暴力呼叫的次數。

(2)客戶端請求裡加上時間戳傳到服務端。服務端獲取時間戳與當前時間做比較,如果時間相差3分鐘,則拒絕訪問本介面。

(3)時間戳的作用可以理解為給介面加了個有效期,超過這個有效期就不能再使用了。主要作用就是防止黑客暴力呼叫。

(4)注意客戶端伺服器與介面伺服器的時間要進行校準,保持一致;否則有效期會不對,導致介面無法正常使用。

(5)時間戳要進行加密傳輸。因為資料加密後是沒有規律可循的,防止黑客模擬資料,進行非法請求。

加密串key說明:

(1)可變加密串組成:(可變字串+固定字串)。採取某種加密演算法對(可變字串+固定字串)進行加密。

(2)如果沒有可變字串,只是對某固定字串加密,資料很容易被黑客模擬,進行非法呼叫。

(3)如果沒有固定字串,只是對某可變字串加密,萬一黑客通過各種測試,知道了key加密的規則,那麼客戶端給的key在服務端校驗總是ok的,介面就並非是安全的了。新增某固定的加密串,增加了黑客破解難度,提高了介面呼叫的安全性。

(4)客戶端與服務端約定好加密串裡」可變字串「和」固定字串「以及加密演算法。服務端接收客戶端的字串,根據約定好的協議自己生成加密串,再與客戶端的作比較,一致的話可以呼叫介面,否則不能呼叫介面。

比如加密串生成規則如下:md5(layyid+」helloword」)

生成規則為引數layyid的值和某個約定的字串helloword經過md5編碼後的值。

(5)加密演算法也可以自定義,不過要注意效能問題,加密時間不要太長。

網際網路介面安全程式設計

1 使用者資訊脫敏,包括但不限於密碼 姓名 郵箱 位址 證件號等,必須加密後落庫。方式a md5 salt。md5準確說不是加密,只是資訊摘要,容易受到彩虹表攻擊,這裡一定要加salt使用。方式b 對稱加密。2 防串改。採用https協議。在http的基礎上加上了ssl,如果要破解,要破ca證書 拿...

網際網路安全(二)

數字簽名 使用公鑰加密技術實現的用於鑑別數字資訊的方法,由資訊的傳送者產生的別人無法偽造的一段數字串,放鬆方用乙個雜湊函式從報文中生成報文摘要 digest 然後使用自己的私鑰對該摘要加密,加密後的摘要即時該報文的數字簽名。接收方需要用和加密是一樣的雜湊函式從接收到的報文中算出報文摘要,然後再用傳送...

網際網路安全加密

1.加密理解 加密型別 分為單向加密和雙向加密 加密演算法 演算法分為對稱性加密演算法和非對稱性加密 對稱性加密理解 對於對稱性加密演算法,資訊接收雙方都需事先知道密匙和加解密演算法且其密匙是相同的,之後便是對資料進行加解密了。非對稱性加密理解 非對稱演算法與之不同,傳送雙方a,b事先均生成一堆密匙...