防止網站被刷票的一些思路與方法

要想完全杜絕刷票,基本只能靠人
服務器君一共花費了119.903 ms進行了5次數據庫查詢,努力地為您提供了這個頁面。
試試閱讀模式?希望聽取您的建議

在Web開發中,投票模塊會經常出現。這樣就使得防止刷票,成了至關重要的技術。以下是試驗過或者網上找到的防止刷票方法:

1. IP限制

這是使用的最多,也是最廣泛,不可少的刷票限制。而且由于專題都沒有用戶模塊,使得這個方法,幾乎成了唯一可行的手段。該方式,通過獲取訪問游客的IP地址,來限制其在一段時間內所能使用的票數。當然,正常訪問頁面投票的游客,肯定都能很好的被這個手段所限制,但是,各種投票的活動和專題,以及豐厚的獎品,使得一些人想方設法的想要進行刷票。

  • ADSL用戶,可以通過斷線重撥來更換IP地址。
  • 使用代理訪問的用戶,我們也無法獲得其真實的IP地址。
  • 還有我們未知的刷票工具。

以上都是我們沒有辦法克服的難題,而且對于網吧/內網用戶來說,這樣的設置也會顯得不夠公平。

2. Cookies 驗證

這也是網上所用到較多的手段,不過,所有來自于客戶端的信息和內容都是不可靠的。熟知cookies原理的人,就可以很容易的繞過限制。

  • cookies 可以禁用。
  • 使用代理訪問的用戶,我們也無法獲得其真實的IP地址。
  • Cookies可以隨意清除、修改。

3. Session 驗證

session會給所有訪問的游客,指定一個唯一的sessionID。這樣,似乎對于防止刷票有一些作用??上ession有致命的缺點。

  • 關閉瀏覽器,session就會被銷毀。
  • 客戶端禁用cookies,session也會失效。

4. 驗證碼

注冊,登陸,回復,發帖……驗證碼使用的范圍很廣,很多??上?,至于具體效果呢,長久下來,只發現這樣的方式,其實只是加大了普通游客的投票難度,而且刷票頻繁的訪問驗證碼,也大大加大了服務器負擔。

有一種驗證碼是可行的,google推出的圖形驗證碼,旨在讓用戶將圖片翻轉至正確的方向,方可完成驗證。想必很少有軟件或者電腦操作可以很好的繞過這樣的驗證碼。不過,缺點呢,實現難度很高。

5. MAC地址限制

作為web程序,很難獲取真實的Mac地址(我用php/js實驗過,并沒有成功的獲取到Mac地址)。當我們讀取客戶端Mac地址時,讀取的也是存儲于注冊表的一個信息,它也是可以進行修改的。

6. 用戶模塊

這應該算很有用的方式。每個游客,必須注冊了賬戶才能進行投票,通過限制賬戶ID來限制投票,并且可以限制初始注冊用戶,一段時間內不能參與投票。而且,真有大量的注冊用戶涌入,也可以增加網站的流量??墒?,對于小地區網站來說,這樣會讓網友覺得很麻煩,可能放棄投票,從而可能流失網站的用戶。

7. 行為記錄

其實,很多刷票行為我們是沒辦法進行限制的??墒怯袝r候,我們卻可以很好的記錄下來。而且當檢測到非正常投票的時候,自動提出票數,要么返回投票成功的假象,也可以很好的限制刷票。

缺點就是,記錄過多的數據,會讓服務器壓力很大。而且,如果記錄行為的記錄點不夠多,不夠復雜,也可能被刷票的專業戶所參透。

8. 回答問題

第一次使用這個方式限制刷票的時候,我們很欣慰的看到了不錯的效果??上?,如果沒有足夠海量的題庫,很快問題的內容和答案就會被收集。反而讓正常投票的用戶,覺得投票很惡心、麻煩,產生厭惡心理。漸漸的也被我們拋棄了。

9. 隨機投票地址

該方法, 讓每一個訪問頁面的用戶得到一個隨機唯一的KEY,通過這個KEY,生成一個投票地址,該地址只能訪問一次,使用過后便作廢。

可惜,指定的KEY的內容,我目前是采用的sessionid+ip+隨機數 生成的MD5碼,而sessionid和ip在上面的內容都提到,是可以銷毀和篡改的。這樣的方式,也不過是在ip限制和session限制無效時候的垂死掙扎。

10. 填寫信息

投票時,讓游客填寫身份證,姓名,手機號碼等可以表示一個人身份的信息,來進行唯一性驗證。不過,身份證你知道格式,姓名隨便填,手機號碼隨便填寫,也是沒辦法限制的。反而讓正常投票的人覺得麻煩。

11. 投票碼/排號系統

投票前,用戶都需要在其他頁面/郵箱先獲取到一個唯一投票的編碼/卷,使用一次作廢。不過,如何驗證‘人’的唯一呢,如果有用戶,他的郵箱足夠多,是不是就可以無限獲取投票碼呢。

對!所以,這也只是治標不治本的方法了。不過,至少,這個方式也會讓刷票的人覺得很麻煩。但是同時,也會讓正常投票的人覺得不方便。不過,能夠讓刷票黨,刷得不是那么痛快,也算是有用了。

12. 人民幣投票

虎,這樣最好,不管是發短信,打電話,還是支付寶,一票一元人民幣,你如果是足夠舍得,當然,隨便你投,隨便你刷,咱也樂意不是。通過支付接口的結合,作弊是相當難的了。

不過,公平性有待考究,畢竟不是所有人的支持者都有錢,都舍得花錢,可能讓好的作品因為‘窮’而得不到票數,這是在咱公平、民主的社會中,是不提倡的!

好了,差不多就以上這些方式。引用一個網友的原文:“要想完全杜絕刷票,基本只能靠人”。

拋磚引玉:

  • flash投票,不過不是很清楚原理,有空的時候會投入測試。
  • 插件。 web插件,可能需要用戶下載安裝,普通用戶會覺得很麻煩,可行性有待考究。
  • 一些有趣的設置 例如,短時間內的多次投票,可能導致投票數下降;可以給作品投負票數,不過有一定幾率無效或者反射到其他作品;類似農場的‘偷菜’,我們可以投票等。也許可以增加一點可玩性,可是公平性就無法保證了。

總結:個人覺得目前最有效的只能是人民幣投票了,可以很好的限制刷票行為。

本文地址:http://www.824886.live/librarys/veda/detail/1714,歡迎訪問原出處。

不打個分嗎?

轉載隨意,但請帶上本文地址:

http://www.824886.live/librarys/veda/detail/1714

如果你認為這篇文章值得更多人閱讀,歡迎使用下面的分享功能。
小提示:您可以按快捷鍵 Ctrl + D,或點此 加入收藏。

閱讀一百本計算機著作吧,少年

很多人覺得自己技術進步很慢,學習效率低,我覺得一個重要原因是看的書少了。多少是多呢?起碼得看3、4、5、6米吧。給個具體的數量,那就100本書吧。很多人知識結構不好而且不系統,因為在特定領域有一個足夠量的知識量+足夠良好的知識結構,系統化以后就足以應對大量未曾遇到過的問題。

奉勸自學者:構建特定領域的知識結構體系的路徑中再也沒有比學習該專業的專業課程更好的了。如果我的知識結構體系足以囊括面試官的大部分甚至吞并他的知識結構體系的話,讀到他言語中的一個詞我們就已經知道他要表達什么,我們可以讓他坐“上位”畢竟他是面試官,但是在知識結構體系以及心理上我們就居高臨下。

所以,閱讀一百本計算機著作吧,少年!

《敏捷軟件開發(原則模式與實踐)》 馬丁 (作者), 鄧輝 (譯者)

《敏捷軟件開發:原則模式與實踐》由享譽全球的軟件開發專家和軟件工程大師Robert C.Martin將向您展示如何解決軟件開發人員、項目經理及軟件項目領導們所面臨的最棘手的問題。這本綜合性、實用性的敏捷開發和極限編程方面的指南,是由敏捷開發的創始人之一所撰寫的。1.講述在預算和實踐要求下,軟件開發人員和項目經理如何使用敏捷開發完成項目;2.使用真實案例講解如何用極限編程來設計、測試、重構和結對編程;3.包含了極具價值的可多次使用的C++和JAVA源代碼;4.重點講述了如何使用UML和設計模式解決面向客戶系統的問題。

更多計算機寶庫...

云南快乐十分走势一定牛 捕鱼欢乐炸正版 极速赛车app开奖号码预测 遇乐吧棋牌娱乐 英超阿森纳赛程表 波克棋牌官方免费下 有融资融券的股票好 天星山西麻将官方微信 福建36选7 pk10冠亚和值免 德甲时间