鑑於之前遇到過簡訊介面被刷的問題,解決的不是很好。現發現一篇如此高質量部落格,特此收藏分享~簡訊轟炸一般基於 web 方式(基於客戶端方式的原理與之類似),由兩個模組組成,包括:乙個前端 web 網頁,提供輸入被攻擊者手機號碼的表單;乙個後台攻擊頁面(如 php),利用從各個**上找到的動態簡訊 url 和 前端輸入的被攻擊者手機號碼,傳送 http 請求,每次請求給使用者傳送乙個動態簡訊。
具體工作原理如下:
惡意攻擊者在前端頁面中輸入被攻擊者的手機號;
簡訊轟炸工具的後台伺服器,將該手機號與網際網路收集的可不需要經過認證即可傳送動態簡訊的 url 進行組合,形成可傳送動態簡訊的 url 請求;
通過後台請求頁面,偽造使用者的請求發給不同的業務伺服器;
業務伺服器收到該請求後,傳送動態簡訊到被攻擊使用者的手機上。
流程示例:
鑑於簡訊轟炸的發起一般都是伺服器行為,應該採用如下綜合手段進行防禦:
增加圖形驗證
單ip請求次數限制
限制號碼傳送
惡意攻擊者採用自動化工具,呼叫「動態簡訊獲取」介面進行動態簡訊傳送,原因主要是攻擊者可以自動對介面進行大量呼叫。
採用驗證碼可有效防止工具自動化呼叫,即當使用者進行「獲取動態簡訊」 操作前,彈出驗證碼,要求使用者輸入驗證碼後,伺服器端再傳送動態簡訊到使用者手機上,該方法可有效解決簡訊轟炸問題。
安全的圖形驗證碼必須滿足如下防護要求
使用了驗證碼後,能防止攻擊者有效進行「動態簡訊」功能的自動化呼叫;但若攻擊者忽略驗證碼驗證錯誤的情況,大量執行請求會給伺服器帶來額外負擔,影響業務使用。建議在伺服器端限制單個 ip 在單位時間內的請求次數,一旦使用者請求次數(包括失敗請求次數)超出設定的閾值,則暫停對該 ip 一段時間的請求;若情節特別嚴重,可以將 ip 加入黑名單,禁止該 ip 的訪問請 求。該措施能限制乙個 ip 位址的大量請求,避免攻擊者通過同乙個 ip 對大量使用者進行攻擊,增加了攻擊難度,保障了業務的正常開展。
建議採用限制重**送動態簡訊的間隔時長,即當單個使用者請求傳送一次動態簡訊之後,伺服器端限制只有在一定時長之後(此處一般為60秒),才能進行第二次動態簡訊請求。該功能可進一步保障使用者體驗,並避免包含手工攻擊惡意傳送垃圾驗證簡訊。
人機驗證:luosimao目前提供的免費圖形驗證碼方案
產品防護:5種常見的簡訊驗證碼防刷策略
如何防止簡訊介面被刷?
簡訊驗證碼作為重要的身份驗證工具,因其操作簡便 安全性高 時效性強等優點已被開發人員廣泛使用。但因其獲取便利 限制較少容易被不法分子利用進行簡訊轟炸,惡意刷掉大量簡訊費用,給公司或個人造成大量的金錢損失,造成這種情況原因主要是在產品實際設計過程中,有些產品人員因為對技術實現不太了解,防範意識薄弱,簡...
如何防止公開介面被惡意呼叫?
今年組長給了幾個任務,其中有兩個是關於對外介面的安全控制 前端驗證元件 利用瀏覽器js加密的技術訪問介面,防止惡意使用者越過瀏覽器直接訪問我們的介面。人機識別 在介面端再做一層檢測,區分呼叫者來自普通使用者還是工具模擬,進一步防止惡意打介面的行為。主要研究的方向在於如何提取使用者行為,因為工具模擬是...
API介面手工防禦被惡意呼叫和介面被攻擊
通常情況下的api介面防護有如下幾種 使用https防止抓包,使用https至少會給破解者在抓包的時候提高一些難度 介面引數的加解密,通過md5加密資料 時間戳 隨機字串 salt 然後將md5加密的資料和時間戳 原資料均傳到後台,後台規定乙個有效時長,如果在該時長內,且解密後的資料與原資料一致,則...