jquery中防刷IP流量軟件影響統(tǒng)計的一點對策
遭遇刷IP、刷流量軟件的困擾
本以為有效控制同一天對同一個IP僅算一次的方案就能有效防止用戶多次刷新地址作弊的現(xiàn)象,我得承認(rèn)涉世未深孤陋寡聞 - -,一直忽視現(xiàn)在的刷流量軟件如此的強大,我們的項目也遭遇使用刷流量軟件的情況,因而產(chǎn)生不少垃圾數(shù)據(jù),甚至影響統(tǒng)計的準(zhǔn)確性。
為解決這種情況也特意下載了兩款知名度比較高的刷流量軟件“流量寶”和“流量精靈”了解一下,不用不知道,一用確實是個好東西。
這兩款軟件的原理都一樣,估計其它的也差不多吧,就是利用網(wǎng)絡(luò)互訪原理,利用網(wǎng)絡(luò)節(jié)點地域差異性,用戶隨機(jī)性,使訪問效果真實有效,也就是你的電腦掛著一個刷流量的軟件的時候,你的地址會被也在掛機(jī)的所有用戶訪問,當(dāng)然人家?guī)湍闼⒌耐瑫r你也在幫人家刷,這一切功夫軟件都在背后幫你完成,掛上幾分鐘馬上就能看到流量慢慢上來,說了不少廢話,下面也說說對策。
應(yīng)對方案
鑒于部分網(wǎng)友不喜歡看全文就下斷論的情況,這里強調(diào)一下,所有提交的后臺的數(shù)據(jù)都有做IP檢查的,而本文討論的就是基于這種情況下被刷IP的應(yīng)對方案。
方案一:通過Ajax異步提交數(shù)據(jù)(無效)
起初推廣地址被點擊時在后臺解析頁面是會先記錄訪客的IP、時間等信息,這種方式顯然很難防不了刷流量軟件,因此便考慮通過Ajax異步提交數(shù)據(jù)的形式。
剛開始還是低估這些流氓軟件,以為只是通過簡單的模擬http請求不會觸發(fā)js腳本,所以第一種方案是通過頁面加載完成后,通過ajax異步提交記錄請求,結(jié)果無效,實驗證明此方式僅對比較低級的機(jī)器人有效;
方案二:判斷請求的客戶端瀏覽器窗口寬度或高度(無效)
通過方案一可推測這些流量軟件不是單純的模擬http請求, 也就是通過真實的瀏覽器請求的,但我掛機(jī)“被”幫別人刷流量的同時,并未看到任何網(wǎng)頁的打開,只能通過抓包工具看到不停的請求,那我猜想這些刷流量軟件是不是隱藏了一個瀏覽器窗口,或者將瀏覽器窗口設(shè)置得很小很小……對此猜想我通過js判斷客戶端當(dāng)前打開的瀏覽器窗口區(qū)域是否大于某個值(如寬300px,高200px,相信沒什么人會用這么小的區(qū)域看網(wǎng)站吧~),超過一個下限值才通過Ajax提交數(shù)據(jù)。
結(jié)果還是無效,對此也特意寫了小程序記錄每一個請求的瀏覽器類型、窗口大小……,結(jié)果令我無語,請求的瀏覽器可視區(qū)域都很正常,甚至分辨率很多比我的顯示器還高,自我鄙視ing……
方案三: 通過鼠標(biāo)事件作為正常訪問的依據(jù) (有效)
通過幾番試驗,得出的結(jié)論是這些機(jī)器人并不簡單,但畢竟是機(jī)器人,那就考慮通過鼠標(biāo)事件判斷是否機(jī)器人,如mousemove、mousedown、mouseover等,當(dāng)然也可以通過讓用戶選擇點擊按鈕等認(rèn)為操作作判斷依據(jù)(當(dāng)然要考慮操作體驗好不好),下面放個簡單腳本:
<script src="jquery-1.4.1.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
var movetimes = 0; //移動次數(shù)
$(document).mousemove(function(even) {
movetimes++;
if (movetimes > 100) { //事件被執(zhí)行次數(shù)大于n,設(shè)置個比較保守的值
$(document).unbind("mousemove"); //解除mousemove綁定
//此處執(zhí)行異步提交數(shù)據(jù)
alert("異步提交記錄請求!");
}
});
});
</script>
總結(jié):
經(jīng)過多番嘗試,最終在第三種方案取得成效,但也不排除日后這些機(jī)器人的不斷改進(jìn)而攻破這個簡單檢驗環(huán)節(jié),畢竟道高一尺魔高一丈。但機(jī)器人畢竟是機(jī)器人,不妨多增加點人為操作的條件因素作判斷,估計還是能防止這類刷IP流量軟件影響統(tǒng)計的??赡苡捎陧椖康奶厥庑?,這些方案并不一定適合所有的情形,畢竟這些刷流量軟件大多都是些草根站長使用并且通常都是刷自己的網(wǎng)站的:),這里也希望院子里的網(wǎng)友也提提好的建議,如何應(yīng)對這些刷流量軟件,分享下經(jīng)驗。
- Jquery AJAX 用于計算點擊率(統(tǒng)計)
- 基于jQuery實現(xiàn)表格數(shù)據(jù)的動態(tài)添加與統(tǒng)計的代碼
- 統(tǒng)計jQuery中各字符串出現(xiàn)次數(shù)的工具
- jquery統(tǒng)計輸入文字的個數(shù)并對其進(jìn)行判斷
- php和jquery實現(xiàn)地圖區(qū)域數(shù)據(jù)統(tǒng)計展示數(shù)據(jù)示例
- jquery統(tǒng)計用戶選中的復(fù)選框的個數(shù)
- jQuery圓形統(tǒng)計圖開發(fā)實例
- jquery實現(xiàn)動靜態(tài)條形統(tǒng)計圖
相關(guān)文章
JavaScript實現(xiàn)向select下拉框中添加和刪除元素的方法
這篇文章主要介紹了JavaScript實現(xiàn)向select下拉框中添加和刪除元素的方法,涉及jQuery中append()與remove()方法動態(tài)操作表單元素的相關(guān)技巧,需要的朋友可以參考下2017-03-03jquery獲取table中的某行全部td的內(nèi)容方法
jquery獲取table中的某行全部td的內(nèi)容方法,需要的朋友可以參考一下2013-03-03jQuery插件zepto.js簡單實現(xiàn)tab切換
這篇文章主要介紹了jQuery插件zepto.js簡單實現(xiàn)tab切換的代碼,十分的簡潔,有需要的小伙伴可以參考下2015-06-06jquery實現(xiàn)將獲取的顏色值轉(zhuǎn)換為十六進(jìn)制形式的方法
這篇文章主要介紹了jquery實現(xiàn)將獲取的顏色值轉(zhuǎn)換為十六進(jìn)制形式的方法,包含了完整的實例與關(guān)鍵代碼的注釋說明,并附帶了所需知識點的參考文章地址,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12