第壹,如果是開發API建議加入訪問頻率設置。例如,如果設置頻率限制為每分鐘1000次(可以是某個端口,每個ip等等),如果壹分鐘內超過這個限制,那麽服務器就會返回 429: Too Many Attempts.響應。
第二,關於偽造IP地址的防範。妳可以發送請求到對方ip地址,偽造的ip地址沒有任何response
無論網站,還是App目前基本都是基於api接口模式的開發,那麽api的安全就尤為重要了。目前攻擊最常見的就是“短信轟炸機”,由於短信接口驗證是App,網站檢驗用戶手機號最真實的途徑,使用短信驗證碼在提供便利的同時,也成了唄惡意攻擊的對象,那麽如何才能防止被惡意調用呢?
1.圖形驗證碼:
將圖形校驗碼和手機驗證碼進行綁定,在用戶輸入手機號碼以後,需要輸入圖形校驗碼成功後才可以觸發短信驗證,這樣能比較有效的防止惡意攻擊。目前大部分應用都是采用這種方式。
2.限定請求次數:
在服務器端限定同IP,同設備,同時間範圍內的接口請求次數。比如同壹號碼重復發送的時間間隔,壹般為60或120秒;設置每個IP每天最大的發送量;設置單個手機號每天的最大發送量。
3.流程條件限定:
將手機短信驗證放在最後進行,比如需要用戶必須註冊後,或者用不必須填寫了某些條件才能進行短信驗證。
4.歸屬地是否壹致:
服務器端檢查用戶的IP所在地與手機號歸屬地是否匹配,如果不匹配則提示用戶手動操作等。
5.服務器接口驗證:
當用戶登錄成功後,返回壹個由Token簽名生成的秘鑰信息(Token可使用base64編碼和md5加密,可以放在請求的Header中),然後對每次後續請求進行Token的封裝生成,服務器端在驗證是否壹致來判斷請求是否通過。
6.采用https:
線上的api接口開啟https訪問,這樣做的話別人抓包的難度會提高很多,而且https需要秘鑰交換,可以在壹定程度上鑒別是否偽造IP。
7.服務器端代理請求:
針對於網站,這也是解決跨域的方案之壹,采用服務器代理可以有效的防止接口真實地址的暴露。
8.其它:
當接口存在大量肉雞攻擊的時候,攻擊者也同樣容易暴露意圖,我們可以通過系統分析算法,讓攻擊者獲取不到有效數據,提高攻擊成本。
總結:
安全問題壹直都是與攻擊者之間智鬥勇的問題,沒有壹勞永逸的解決方法,只有不斷交鋒,不斷成長....