rest api架構越來越多的被使用。
當你設計了乙個post方法的api時,該api暴露出來後可能被人找到,並進行惡意資料的提交。
怎麼解決這個被惡意提交的問題呢?首先想到的是可以要求客戶在提交引數時,將驗證資訊加上如:使用者名稱、密碼。就像下面的資料結構一樣使用者每次提交資料都加上kid(相當於使用者名稱)和passwd:
按照上面的方法資料如果被抓包後,所data的資料進行修改後再提交,這樣伺服器端根據不本知道資料被修改了。如果你設計的是一套金融系統,這個data
可能是rmb….
解決資料被修改的方法,就是將引數data
與kid
、passwd
以及乙個金鑰
計算其md5值,將計算出的md5值也加到引數中,這樣上述的引數結構會變成
伺服器端在接收請求後,將data
、kid
、passwd
與客戶端做同樣的加密演算法,並將結果與sing
進行對比。
加簽名的風險如下:
* 加密碼演算法及金鑰同時被破解;
想讓api更安全,需要將加密演算法設計更加複雜一些。
* 金鑰設計的複雜一些;
* 使用多次字串加密;
* 擷取加密後字串的某幾位;
如何保護你的JSP頁面
為了更好地保護你的jsp避免未經授權的訪問和窺視,乙個好辦法是將頁面檔案存放在web應用的web inf目錄下。通常jsp開發人員會把他們的頁面檔案存放在web應用相應的子目錄下。乙個典型的商店應用程式的目錄結構如圖2所示。跟catalog 商品目錄 相關的jsp被儲存在catalog子目錄下。跟c...
如何版本化你的API?
infoq,如何版本化api需要考慮各種實際業務場景,但是乙個完備的api應該是 為了滿足上述約定,版本化api不失為一種保持相容性的好方法。版本化api的通常方式有 uri中設定版本 這種方式通常在uri中增加一段用於標識版本,例如 v1 v2等。例如 curl這種方式的優勢在於版本資訊很容易明顯...
如何保護你的數字資產隱私?
通常,位元幣 以太坊等數字貨幣被認為是匿名的。但事實上,這些用區塊鏈技術實現的數字貨幣體系可能是世界上最透明的支付網路。如果使用不當,你的數字資產情況並無私隱可言。首先,讓我們了解數字貨幣的溯源性。數字貨幣為其交易記錄提供了空前的透明度,以致於大部分的人還沒有適應這樣的機制。所有的數字貨幣交易都是公...