淺談Web API安全性設計

APP的興起之後,為了達到跨平台的資料傳輸和串接,時常會有開發API的需求,我們通過http Post或者Get方式請求伺服器的時候,常會面臨著許多的安全性問題,例如:

1.如何驗證調用者身份呢?

2.如何防止參數被篡改呢?

3.如何保證請求的唯一性?

4.如何保證請求的唯一性,防止請求被惡意攻擊呢?

譬如說,今天提供了一個查詢會員資料或是購買紀錄的API,然而此API可能會成為個資外洩的安全漏洞,因此,在設計API的時候,必須採取一些機制來防範這些安全性的問題。

常見的方式會使用簽名設計

設計原理:使用TimeStamp和Token和一組簽名(Signature)

所有的API都必須多加入TimeStamp和Token,Token是根據所有參數加上TimeStamp和給予的Signature加以加密(常見的如MD5或是AES加密)

Server端收到以後

1.解密Token的資料加以比對解密後的資料和傳入的值是否一致。

2.檢查TimeStamp的時間是否已經間隔太久。