《PHP實戰:網站防止被刷票的一些思路與方法》要點:
本文介紹了PHP實戰:網站防止被刷票的一些思路與方法,希望對您有用。如果有疑問,可以聯系我們。
PHP實戰1. IP限制
這是使用的最多,也是最廣泛,不可少的刷票限制.而且由于專題都沒有用戶模塊,使得這個方法,幾乎成了唯一可行的手段.該方式,通過獲取拜訪游客的IP地址,來限制其在一段時間內所能使用的票數.當然,正常拜訪頁面投票的游客,肯定都能很好的被這個手段所限制,但是,各種投票的活動和專題,以及豐厚的獎品,使得一些人想方設法的想要進行刷票.
PHP實戰ADSL用戶,可以通過斷線重撥來更換IP地址.
使用代理拜訪的用戶,我們也無法獲得其真實的IP地址.
還有我們未知的刷票工具.
以上都是我們沒有辦法克服的難題,而且對于網吧/內網用戶來說,這樣的設置也會顯得不夠公平.
PHP實戰2. Cookies 驗證
這也是網上所用到較多的手段,不過,所有來自于客戶端的信息和內容都是不可靠的.熟知cookies原理的人,就可以很容易的繞過限制.
PHP實戰cookies 可以禁用.
使用代理拜訪的用戶,我們也無法獲得其真實的IP地址.
Cookies可以隨意清除、修改.
3. Session 驗證
session會給所有拜訪的游客,指定一個唯一的sessionID.這樣,似乎對于防止刷票有一些作用.可惜session有致命的缺點.
PHP實戰關閉瀏覽器,session就會被銷毀.
客戶端禁用cookies,session也會失效.
4. 驗證碼
注冊,登陸,回復,發帖……驗證碼使用的范圍很廣,很多.可惜,至于具體效果呢,長久下來,只發現這樣的方式,其實只是加大了普通游客的投票難度,而且刷票頻繁的拜訪驗證碼,也大大加大了服務器負擔.
PHP實戰有一種驗證碼是可行的,google推出的圖形驗證碼,旨在讓用戶將圖片翻轉至正確的方向,方可完成驗證.想必很少有軟件或者電腦操作可以很好的繞過這樣的驗證碼.不過,缺點呢,實現難度很高.
PHP實戰5. MAC地址限制
作為web程序,很難獲取真實的Mac地址(我用php/js實驗過,并沒有成功的獲取到Mac地址).當我們讀取客戶端Mac地址時,讀取的也是存儲于注冊表的一個信息,它也是可以進行修改的.
PHP實戰6. 用戶模塊
這應該算很有用的方式.每個游客,必需注冊了賬戶才能進行投票,通過限制賬戶ID來限制投票,并且可以限制初始注冊用戶,一段時間內不能參與投票.而且,真有大量的注冊用戶涌入,也可以增加網站的流量.可是,對于小地區網站來說,這樣會讓網友覺得很麻煩,可能放棄投票,從而可能流失網站的用戶.
PHP實戰7. 行為記錄
其實,很多刷票行為我們是沒方法進行限制的.可是有時候,我們卻可以很好的記錄下來.而且當檢測到非正常投票的時候,自動提出票數,要么返回投票成功的假象,也可以很好的限制刷票.
PHP實戰缺點就是,記錄過多的數據,會讓服務器壓力很大.而且,如果記錄行為的記錄點不夠多,不夠復雜,也可能被刷票的專業戶所參透.
PHP實戰8. 回答問題
第一次使用這個方式限制刷票的時候,我們很欣慰的看到了不錯的效果.可惜,如果沒有足夠海量的題庫,很快問題的內容和答案就會被收集.反而讓正常投票的用戶,覺得投票很惡心、麻煩,產生厭惡心理.漸漸的也被我們拋棄了.
PHP實戰9. 隨機投票地址
該方法, 讓每一個拜訪頁面的用戶得到一個隨機唯一的KEY,通過這個KEY,生成一個投票地址,該地址只能拜訪一次,使用過后便作廢.
PHP實戰可惜,指定的KEY的內容,我目前是采用的sessionid+ip+隨機數 生成的MD5碼,而sessionid和ip在上面的內容都提到,是可以銷毀和篡改的.這樣的方式,也不過是在ip限制和session限制無效時候的垂死掙扎.
PHP實戰10. 填寫信息
投票時,讓游客填寫身份證,姓名,手機號碼等可以表示一個人身份的信息,來進行唯一性驗證.不過,身份證你知道格式,姓名隨便填,手機號碼隨便填寫,也是沒方法限制的.反而讓正常投票的人覺得麻煩.
PHP實戰11. 投票碼/排號系統
投票前,用戶都必要在其他頁面/郵箱先獲取到一個唯一投票的編碼/卷,使用一次作廢.不過,如何驗證‘人'的唯一呢,如果有用戶,他的郵箱足夠多,是不是就可以無限獲取投票碼呢.
PHP實戰對!所以,這也只是治標不治本的辦法了.不過,至少,這個方式也會讓刷票的人覺得很麻煩.但是同時,也會讓正常投票的人覺得不方便.不過,能夠讓刷票黨,刷得不是那么痛快,也算是有用了.
PHP實戰12. 人民幣投票
虎,這樣最好,不管是發短信,打電話,還是支付寶,一票一元人民幣,你如果是足夠舍得,當然,隨便你投,隨便你刷,咱也樂意不是.通過支付接口的結合,作弊是相當難的了.
PHP實戰不過,公平性有待考究,究竟不是所有人的支持者都有錢,都舍得花錢,可能讓好的作品因為‘窮'而得不到票數,這是在咱公平、民主的社會中,是不提倡的!
歡迎參與《PHP實戰:網站防止被刷票的一些思路與方法》討論,分享您的想法,維易PHP學院為您提供專業教程。