應用(接口)被刷的解決方案(接口防止機器刷數據的處理方案)

一.接口被刷表現方式

接口被刷,通常表現爲如下兩種:緩存

一、數據含有敏感詞 或者 廣告;網絡

二、一分鐘產生大量相似數據;post

 

二.防刷處理步驟1:網絡層攔截

經過access.log查出是否有密集的IP請求應用被刷的接口,若有則封IP 或者 限速【有效】

經過access.log分析,能夠分析出以下兩個截圖結果:優化

IP1從某時間段總共請求接口6489次,佔總應用訪問率97.286次。spa

IP1每分鐘請求接口的次數,10幾回-20幾回,甚至是20次+,這個統計結果很明顯是機器刷數據了,普通網友不可能達到如此速度。.net

有這種狀況,可採起如下兩種處理方案:blog

方案1:經過網絡層封掉IP,若是用此方案處理,則該IP不能訪問該應用或者說是本公司露出的全部應用【處理方式較狠】;接口

方案2:對同一IP加些限制,通常表現爲對IP進行限速ip

==>對同一IP來源同一URL進行限速get

==>對同一IP來源進行限速

對IP作限速至關因而不能讓如此速度快(即機器提交的速度)的提交代碼,即防止機器刷數據

具體配置參數==》http://my.oschina.net/xsh1208/blog/657342 

 

三.防刷處理步驟2:程序攔截

 
一、對單個用戶/ip限制每分鐘最多提交的次數【有效】

實現方式有多種,經常使用的方式是記錄單次提交成功的單個用戶/ip放到mc裏面,而後給mc設定2分鐘的緩存時間。下次該用戶/ip提交數據的時候先查mc是否已過時,沒過時,則不給提交;

二、對提交數據資格進行加嚴

例如能夠post數據的權限限制爲帳號必須經過郵箱激活或者手機號已經被激活了等等處理

三、對敏感詞/廣告詞/特殊字符進行過濾

分析數據可知,大部分數據含有特殊字符(例如前面截圖中用橫線標識出的字符),須要對該類數據進行過濾;

四、數據審覈

此處可把數據提交到公司公共的審覈平臺給機器或者人工審覈;

【根據業務須要設置,畢竟審覈平臺可能會攔截了大部分真實的數據,或者攔截不到須要攔截的數據】

【通常考慮發送審覈平臺不能實時顯示數據,會採起先出後審的方式,即問題提交成功後,即顯示,等到審覈不經過,則會被關閉數據 ==》這塊業務可優化爲:特別針對被刷的接口,提交數據後,調整方案爲 先審後出,即只有審覈經過才能顯示】

五、添加訪問IP記錄

若是有加IP記錄,則可直接經過後臺統計出批量刷數據的IP,能夠在後臺優先把IP禁掉了

相關文章
相關標籤/搜索