2、作弊的常見手段
秒殺和搶購收到了海量的請求,實際上水分是很大的。不少用戶為了搶到商品,會使用刷票軟件等類型的輔助工具,所以就會發(fā)送盡可能多的請求到服務器。還有一部分用戶,自己制作強大的自動請求腳本,這些都是屬于“作弊的手段”,不過有“進攻”就有“防守”。
2、作弊的常見手段
秒殺和搶購收到了海量的請求,實際上水分是很大的。不少用戶為了搶到商品,會使用刷票軟件等類型的輔助工具,所以就會發(fā)送盡可能多的請求到
服務器。還有一部分用戶,自己制作強大的自動請求
腳本,這些都是屬于“作弊的手段”,不過有“進攻”就有“防守”。
2.1 、同一個賬號,一次性發(fā)出多個請求
部分用戶通過瀏覽器的插件或者其他工具,在秒殺開始的時間里,以自己的賬號一次發(fā)送上百甚至更多的請求。這樣的用戶破壞了秒殺和搶購的公平性,這種請求在某些沒有做
數(shù)據(jù)安全處理的系統(tǒng)里,也可能造成另外一種破壞,導致某些判斷條件被繞過。如一個簡單的領取邏輯,先判斷用戶是否有參與記錄,如果沒有則領取成功,最后寫入到參與記錄中。這是個非常簡單的邏輯,但是在高并發(fā)的場景下,存在深深的漏洞,多個并發(fā)請求通過
負載均衡服務器,分配到內網(wǎng)的多臺Web服務器,它們先向存儲發(fā)送查詢請求,然后在某個請求成功寫入?yún)⑴c記錄的時間差內,其他的請求獲查詢到的結果都是“沒有參與記錄”。這就存在邏輯判斷被繞過的風險。
應對方案:在程序入口處,一個賬號只允許接受1個請求,其他請求過濾,不僅解決了同一個賬號發(fā)送N個請求的問題,還保證了后續(xù)的邏輯流程的安全。
2.2、多個賬號,一次性發(fā)送多個請求
賬號注冊功能在發(fā)展早期幾乎是沒有限制的,很容易就可以注冊很多個賬號。因此也導致了出現(xiàn)了一些特殊的工作室,通過編寫自動注冊腳本,積累了一大批“僵尸賬號”,數(shù)量龐大,幾萬甚至幾十萬的賬號不等,專門做各種刷行為(這就是傳說中的“僵尸粉“)。比如有轉發(fā)抽獎的活動,如果使用幾萬個“僵尸號”去混進去轉發(fā),這樣就可以大大提升中獎的概率,使用在秒殺和搶購也是同一個道理,比如iPhone官網(wǎng)的搶購,火車票黃牛黨也是如此。
應對方案:這種場景可以通過檢測指定機器IP請求頻率就可以解決,如果發(fā)現(xiàn)某個IP請求頻率很高,可以給它彈出一個驗證碼或者直接禁止它的請求:彈出驗證碼,目的就是分辨出真實用戶。
網(wǎng)站彈出的驗證碼,都是隨機的樣子,有時無法看清,這樣做的原因,其實也是為了讓驗證碼的圖片不被輕易識別,因為強大的“自動腳本”可以通過圖片識別里面的字符,然后讓腳本自動填寫驗證碼?,F(xiàn)在有一些新方法效果會比較好,如給你一個簡單問題讓你回答,或者讓你完成某些簡單操作,這個做法簡單高效、效果也很好。
2.3、多個賬號,不同IP發(fā)送不同請求
有進攻,就會有防守,這些“工作室”,發(fā)現(xiàn)你對單機IP請求頻率有控制之后,他們也針對這種場景,想出了他們的“新進攻方案”,就是不斷改變IP,這些隨機IP服務怎么來的,有一些是某些機構自己占據(jù)一批獨立IP,然后做成一個隨機代理IP的服務,有償提供給這些“工作室”使用。還有一些就是通過木馬黑掉普通用戶的電腦,這個木馬也不破壞用戶電腦的正常運作,只做一件事情,就是轉發(fā)IP包。通過這種做法黑客就拿到了大量的獨立IP,然后搭建為隨機IP服務,賺了很多黑心錢。
應對方案: 這種情況通常只能通過設置業(yè)務門檻高來限制這種請求了,或者通過賬號行為的”數(shù)據(jù)挖掘“來提前清理掉它們。僵尸賬號也還是有一些共同特征的,例如賬號很可能屬于同一個號碼段甚至是連號的,活躍度不高,等級低,資料不全等等。根據(jù)這些特點,適當設置參與門檻,例如限制參與秒殺的賬號等級。通過這些業(yè)務手段,也是可以過濾掉一些僵尸號。
2.4、火車票的搶購
看到這里,你是否明白為什么搶不到火車票,如果你只是老老實實地去搶票,真的很難。通過多賬號的方式黃牛將很多車票的名額占據(jù),部分牛逼的黃牛在處理驗證碼方面更是“技高一籌“,高級的黃牛刷票時,在識別驗證碼的時候使用真實的人,中間搭建一個展示驗證碼圖片的中轉軟件服務,真人瀏覽圖片并填寫下真實驗證碼,返回給中轉軟件。對于這種方式,驗證碼的保護限制作用被廢除了,目前也沒有很好的解決方案。因為火車票是根據(jù)身份證實名制的,除比之外還有一個火車票的轉讓操作方式,就是先用買家的身份證開啟一個搶票工具,持續(xù)發(fā)送請求,黃牛賬號選擇退票,然后黃牛買家成功通過自己的身份證購票成功,因為黃牛們的搶票工具也很強大,即使讓我們看見有退票,我們也搶不過他們,最終黃牛順利將火車票轉移到買家的身份證下。
什么是服務器的高并發(fā)?解決方案:并沒有很好的解決方案,唯一可以動心思的也許是對賬號數(shù)據(jù)進行“數(shù)據(jù)挖掘”,這些黃牛賬號也是有一些共同特征的,例如經(jīng)常搶票和退票,節(jié)假日異?;钴S等等。將它們分析出來,再做進一步處理和甄別。