前言
產(chǎn)品設(shè)計(jì)中不可避免的會(huì)需要考慮各種防刷&防作弊等安全策略設(shè)計(jì),今天就簡(jiǎn)單總結(jié)一下相關(guān)方法。
為什么要考慮這些
作為一個(gè)產(chǎn)品狗,設(shè)計(jì)產(chǎn)品是為了給用戶提供優(yōu)質(zhì)的服務(wù),如果被刷被作弊就會(huì)間接影響到產(chǎn)品服務(wù)的質(zhì)量。比如一個(gè)短信接口被刷爆導(dǎo)致公司需要支付巨額短信服務(wù)費(fèi),進(jìn)一步影響公司狀況從而無(wú)法繼續(xù)為正常用戶提供服務(wù)等等。
隨便說(shuō)點(diǎn)
1. 姓名身份證匹配認(rèn)證
最近一個(gè)項(xiàng)目接觸到有關(guān)姓名與身份證匹配的認(rèn)證,這樣的第三方接口相對(duì)價(jià)格較高,所以被刷的損失也就較大。
對(duì)此,我設(shè)計(jì)的策略是:
- 單個(gè)注冊(cè)用戶,每天最多認(rèn)證x次,x次失敗后當(dāng)天(24點(diǎn)為界)無(wú)法繼續(xù)認(rèn)證
- 單個(gè)注冊(cè)用戶,最多累計(jì)認(rèn)證y次,超過(guò)則無(wú)法再認(rèn)證
- 對(duì)所有用戶,客服可以再后臺(tái)進(jìn)行認(rèn)證
以上策略設(shè)置了單個(gè)用戶一天可認(rèn)證的上限和累計(jì)可認(rèn)證上限,然后在后臺(tái)為用戶保留最極端情況(就是用戶真就不知道啥原因又不是有意的認(rèn)證失敗y次)的處理方式——聯(lián)系客服(機(jī)器沒(méi)法處理的事,還是得交給人來(lái)處理)
但是簡(jiǎn)單得一條“單個(gè)注冊(cè)用戶每天最多認(rèn)證3次”的策略,卻不是你和技術(shù)說(shuō)“單個(gè)注冊(cè)用戶每天認(rèn)證x次后,頁(yè)面認(rèn)證按鈕置灰不可點(diǎn)”這么簡(jiǎn)單的。要知道前端的控制是可以被輕易修改的,而且在認(rèn)證的時(shí)候POST or GET了哪些接口在如今各種瀏覽器的F12里都是可以被小白如我的人找到并利用。因此:
涉及到限制策略,就需要前端+接口一起限制
所以上面的“單個(gè)注冊(cè)用戶每天最多認(rèn)證x次”,就需要說(shuō)明不僅是“用戶認(rèn)證失敗x次后,當(dāng)天24點(diǎn)前頁(yè)面認(rèn)證按鈕置灰不可點(diǎn)”,還包括“后端提供的調(diào)用第三方認(rèn)證服務(wù)的接口,需要根據(jù)輸入的用戶名判斷,若當(dāng)天已經(jīng)被調(diào)用達(dá)到x次則接口直接返回錯(cuò)誤”。
2. App的防刷&防作弊
最近還向組內(nèi)產(chǎn)品大牛Mr.D討教了一些App相關(guān)的防刷&防作弊策略。
App因?yàn)槠淇梢垣@取更多的信息,便可以做的更多:
1:前端+接口限制,一般的登錄后操作可以通過(guò)用戶名等標(biāo)識(shí)進(jìn)行次數(shù)判斷限制
2:登錄前操作可以通過(guò)獲取相關(guān)設(shè)備ID來(lái)進(jìn)行次數(shù)判斷限制
最后
通過(guò)互聯(lián)網(wǎng)這張大網(wǎng)提供服務(wù),用戶都藏在背后,天然就減低了做壞事的成本。我們希望給用戶做無(wú)罪假設(shè),但是不可避免的還是要考慮各種有罪假設(shè)情況下的應(yīng)對(duì)措施。總的來(lái)說(shuō):用戶沒(méi)有錯(cuò),只要服務(wù)有問(wèn)題了,就是產(chǎn)品狗的錯(cuò),即使是被刷爆了那也是產(chǎn)品狗沒(méi)考慮周全沒(méi)做好應(yīng)對(duì)策略(當(dāng)然大黑客來(lái)攻擊就沒(méi)轍了),就醬。