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