註冊介面,通過手機驗證,發驗證碼到手機
被人惡意攻擊,隨意提交手機號,消耗簡訊費用,
提交的表單,ip,手機號都隨機,
驗證碼已經失效(驗證碼資訊服務器存session),
cookie限制不行,ip又是隨機,怎麼辦
就算升級驗證碼,被破解是遲早的事
還有什麼方案?
回複內容:
註冊介面,通過手機驗證,發驗證碼到手機
被人惡意攻擊,隨意提交手機號,消耗簡訊費用,
提交的表單,ip,手機號都隨機,
驗證碼已經失效(驗證碼資訊服務器存session),
cookie限制不行,ip又是隨機,怎麼辦
就算升級驗證碼,被破解是遲早的事
還有什麼方案?
簡單有效方案就是發送前再加一個圖片驗證碼,防止機器提交。
可以考慮這種極驗驗證碼 http://www.geetest.com/
採用圖片驗證碼的方式是否是一個好的方案,從使用者體驗的角度來說是值得商榷的
那麼,我的建議會是:隱藏文字框
1.在註冊表單裡添加一個文字框,利用css將其隱藏
2.你可以通過javascript來間歇更新這裡的值,然後根據你的具體更新規則,在後台進行驗證即可,如果不符合規則,即可判斷是bot
介面走HTTPS + token + 參數加密傳送
js擷取游標座標並傳進後端,後端處理這些座標是否在註冊按鈕的座標區中,不知道這樣可不可以
限制同一個手機號碼,就是發送後儲存發送時間,後期這個號碼過來,檢測是否超過有效時間
無效號碼,就是對號碼進行效驗是否合法
對於合法,隨機號碼攻擊,那就是通過ip限制了,一個ip一段時間內最多幾個號碼!
暫時想到就這麼多了
http://segmentfault.com/q/10100000007530... 這個是和你一樣的問題
以下幫你轉載的
【綁定圖型校正碼】——將圖形校正碼和手機驗證碼進行綁定,當使用者輸入手機號碼以後,需要輸入圖形校正碼才可以觸發簡訊,這樣能比較有效防止軟體惡意點擊。現在大型網站都採用此方式。
2.【流程限定】——將手機簡訊驗證和使用者名稱註冊分成兩個步驟,使用者在註冊成功使用者名稱密碼後,下一步才進行手機簡訊驗證。
3.【觸發條件】——使用者必須填寫好所有註冊資訊才可進行觸發,註冊資料不完整無法發送驗證碼。
附加對接設定:
【簡訊發送間隔設定】——設定同一號碼重複發送的時間間隔,一般設定為60-120秒;
【IP限定】——設定每個IP每天的最大發送量;
【發送量限定】——設定每個手機號碼每天的最大發送量;
目前我們推薦的是第1、2、3結合456的方法進行對接介面。以免簡訊造成不必要的浪費!
除了驗證碼和簽名,其他都沒卵用
介面用伺服器curl或者flie_get_content請求,介面還要寫一個簽名驗證`
資料使用ajax post提交,同時禁止跨域提交上來的資料,同域提交的資料也做簽名驗證
建議使用手機號碼歸屬方法,先查是否存在,如果存在時在發送資訊,沒辦法了還可以做地區限制
可以嘗試下同盾科技的介面保護解決方案
記錄一下每次擷取驗證碼的請求ip,電話號碼以及請求時間
下次再請求的時候判斷一下兩次請求的時間間隔 你可以自己把控這個度
譬如30分鐘之內只能發送一次驗證碼
這樣的話如果想消耗你們的簡訊費用就得有多台機器並且有多個手機號碼
這也只是我的猜想,不知道可不可行
可以從HTTP頭還有訪問記錄來判斷是否正常使用者的,一般指令碼的話,只會抓取HTML,不會請求圖片,CSS,JS等內容;
還有一些HTTP頭,指令碼的一般都不完整。
不過真要搞你,我覺得基本攔不住,隨機IP,隨機電話,這個無法簡單的判斷出來是正常使用者還是攻擊。
用12306的驗證碼。
多準備幾套驗證碼方案,隨機更換,他破解的速度能有換驗證碼的速度快嗎?
驗證碼發送到手機是這麼被擷取。 一般邏輯過程使用者調研註冊介面,你調用簡訊介面,簡訊平台叫用你的回掉介面。或者你們提供驗證碼給簡訊介面,簡訊給使用者。 使用者沒有手機是不知道的。我看有必要花錢找人做滲透測試。如果簡訊平台是安全可信性的話,你們問題更加嚴重。
用私密金鑰產生簽名,公開金鑰傳輸,服務驗證簽名
難道沒有對介面請求加token過濾?還是token很容易被破解