201208 @鄭昀
-秒殺器愛好者的技能點-
- OCR識別
- 掌握一般的驗證碼圖片識別OCR技術,多數局限於英文和數字字符的OCR識別,隨着背景干擾加大,識別率急劇降低
- 表單提交
- 提前准備好表單
- 自動填寫表單,自動提交
- 自定義快捷鍵
- 題庫
- 針對特定電商,提前收集秒殺問題的題庫
- 錄制回放
- 利用“按鍵精靈”軟件錄制鼠標鍵盤動作並進行回放
- 變換IP
- 每走完一遍流程,更換一下出口IP(重新ADSL撥號或更換代理IP地址與端口)
- 早期的cookie欺騙
- 早期有人把cookies校驗放在瀏覽器端做,自然可以欺騙
- 提前獲得驗證碼
- 拍拍至今所使用的圖片驗證碼都是 http://captcha.qq.com/getimage 提供的,可以與業務無關;它設置了一個會話級cookie,所以可以提前手動刷新拿到若干個verifycode和verifysession組合
- 強制使用過期cookie!
- 此辦法可結合上一條
- 一般是瀏覽器提交cookie里的verifysession(或一個Hash串)和手工輸入的驗證碼字符串,服務器端按F(verifysession)==verifycode進行校驗。那么秒殺器突破時,強制扔掉服務器之前給的Hash串,用自己手中掌握的 verifysession和 verifycode提交,這樣就可以無視了。即使一組 verifysession和 verifycode在服務器端驗證后立即失效,也無所謂,已經突破了,就拼誰的秒殺器並發提交快即可
- 強制使用過期題目
- 如果本次秒殺商品對應的答題不是一對一鎖定的(換其他題提交無效),那么也可以采用上一條的做法,強制使用過期題目
鄭昀
:△
==京東商城的做法==
2010年的京東做法:
曾推出緊急公告:
『京東將根據服務器日志判斷搶購者是否使用了“秒殺器”,京東有權取消該訂單,然后剩余產品重新搶購我們會緊急開發一套臨時防火牆,由系統自動屏蔽“秒殺器”並且自動封掉相關賬號,取消其1元搶購權。』
鄭昀 :△
==蘇寧易購的做法==
2010年的易購做法:
❶ 系統會確認賬戶是否有秒殺資格:頁面會提示“恭喜您獲得秒殺資格,待系統驗證您的賬戶為有效賬戶,秒殺榜即會顯示“驗證成功”,您即可以秒殺價購買商品,請關注您的賬戶驗證狀態!”,應該是在服務器端驗證賬戶是否是有效賬戶的,而不是瀏覽器端;
驗證本次表單填寫的手機號碼的有效性驗證賬戶的有效性
❷ 問題回答模式(注意是一個秒殺就會出多道題目,全部回答正確才能參與秒殺):有考古詩的,有填字游戲,有算術題,譬如“《三國演義》中周瑜是被誰氣死的?”;
❸ 根據算法生成表單中hidden input控件的name:據太平講,每次會變化控件name或id,增加秒殺器自動組裝表單的難度,但防不了錄制回放;
2011年的易購做法:
❶ 單個ip在單位時間內的表單提交數做了限制;
鄭昀 :△
==建東的做法==
在應用服務器上
❶ 基於IP的簡單判斷:連續1分鍾之內超過5次做同一件事情(一般是注冊、登錄、下單、付款),即在應用層處理該IP。這個數據放在jvm中即可,只保存很少的數據量,不積累,不解決那種1小時多少次重復一件事情的場景;
❷ 1小時重復一件事情的場景,交給風險控制系統進行智能分析,然后把IP加入黑名單,在應有層直接干掉;
❸ 建立黑名單賬戶,通過分析發現有問題的賬戶,直接凍結掉;
❹ 在應用上采用token、圖片等方式,減少‘系統’處理的可能,例如:降低‘系統自動登錄’的可能。為了提高體驗:第一次不出現圖片驗證碼,第二次之后才出現;在cookie中寫入一個標記,如果用戶更換了瀏覽器,也認為是第二次,出現圖片驗證碼提示;
鄭昀 :△
==特定商品秒殺的做法==
一個登錄用戶(以UserID標識)和一個秒殺商品(以GoodsID標識)對應於一個Key,給用戶的圖片驗證碼與此Key綁定,且商品開賣之前訪問此驗證碼無效。
即圖片驗證碼與業務、與用戶、與時間有關,提前拿到其他業務的驗證碼無效。
圖片驗證碼一旦驗證,立即失效。
相關報道:
贈圖一枚: