開發(fā)中經常用到接口,尤其是在面向服務的soa架構中,數據交互全是用的接口。
幾年以前我認為,我寫個接口,不向任何人告知我的接口地址,我的接口就是安全的,現在回想真是too young,too simple。但凡部署在廣域網的應用程序,隨隨便便的好多工具可以根據ip或域名掃描應用程序的所有暴露的接口,進而分析參數,注入程序,分分鐘被攻擊。
那咋才能保證接口的安全性呢?
(一)面臨的主要安全問題
a.網絡環(huán)境假設:
a1.假設公共網絡(Internet,如:WIFI、非家庭網絡、非辦公網絡等) 是不安全的,一切基于HTTP協議的請求/響應(Request or Response)都是可以被截獲的、篡改、重放(重發(fā))的。
b.接口安全要求:
b1.防偽裝攻擊(案例:在公共網絡環(huán)境中,第三方 有意或惡意 的調用我們的接口)
b2.防篡改攻擊(案例:在公共網絡環(huán)境中,請求頭/查詢字符串/內容 在傳輸過程被修改)