鑑於以前遇到太短信接口被刷的問題,解決的不是很好。現發現一篇如此高質量博客,特此收藏分享~html
短信轟炸通常基於 WEB 方式(基於客戶端方式的原理與之相似),由兩個模塊組成,包括:一個前端 Web 網頁,提供輸入被攻擊者手機號碼的表單;一個後臺攻擊頁面(如 PHP),利用從各個網站上找到的動態短信 URL 和 前端輸入的被攻擊者手機號碼,發送 HTTP 請求,每次請求給用戶發送一個動態短信。前端
具體工做原理以下:安全
流程示例: 服務器
鑑於短信轟炸的發起通常都是服務器行爲,應該採用以下綜合手段進行防護:工具
惡意攻擊者採用自動化工具,調用「動態短信獲取」接口進行動態短信發送,緣由主要是攻擊者能夠自動對接口進行大量調用。 採用圖片驗證碼可有效防止工具自動化調用,即當用戶進行「獲取動態短信」 操做前,彈出圖片驗證碼,要求用戶輸入驗證碼後,服務器端再發送動態短信到用戶手機上,該方法可有效解決短信轟炸問題。網站
安全的圖形驗證碼必須知足以下防禦要求spa
使用了圖片驗證碼後,能防止攻擊者有效進行「動態短信」功能的自動化調用;但若攻擊者忽略圖片驗證碼驗證錯誤的狀況,大量執行請求會給服務器帶來額外負擔,影響業務使用。建議在服務器端限制單個 IP 在單位時間內的請求次數,一旦用戶請求次數(包括失敗請求次數)超出設定的閾值,則暫停對該 IP 一段時間的請求;若情節特別嚴重,能夠將 IP 加入黑名單,禁止該 IP 的訪問請 求。該措施能限制一個 IP 地址的大量請求,避免攻擊者經過同一個 IP 對大量用戶進行攻擊,增長了攻擊難度,保障了業務的正常開展。htm
建議採用限制重複發送動態短信的間隔時長,即當單個用戶請求發送一次動態短信以後,服務器端限制只有在必定時長以後(此處通常爲60秒),才能進行第二次動態短信請求。該功能可進一步保障用戶體驗,並避免包含手工攻擊惡意發送垃圾驗證短信。blog
原文連接:如何防範短信接口被惡意調用(被刷)