談談單位時間內投票次數限制

2022-03-21 09:12:26 字數 1158 閱讀 9615

我們來看看有那些方法來防止倒票:

1.session  採用session物件防止重複投票好像還不錯,如果您利用單一瀏覽器進行測試,確實可以證明session具有防止重複投票的功能,實際上開啟另乙個瀏覽器,session變了,那麼又可以投票了.為什麼呢?因為每乙個執行中的瀏覽器對應乙個session物件,雖然我們可以設定第乙個瀏覽器的session值,但是第二個.第三個.....無法設定了..

2.cookie   一般利用cookie進行設定,主要是設定cookie的失效時間,也就是在這段時間內,這台電腦的資訊被cookie儲存,你可以做允許的事情,這樣我們可以利用其進行投票,比如說登入的時候將client的ip位址賦值給cookie,cookies("value").expires="12/31/2999";使用者登入的時候,我們檢查cookie是否有值,來決定他是否有許可權進行投票.這種方法比session應該好多了,重啟,開啟多個瀏覽器都被cookie左右,但是致命的一項是cookie是可以清除的,這樣我們的設定又輕易的被破解了。

3.ip+資料庫

這是目前還算有效但是不是絕對有效的方法,下面的示例將記錄我做的教師測評的限制ip的原始碼.使用者登入的時候,取得client端的ip,並且與系統資料庫儲存的ip比較(系統儲存的資料可以按照時間的降序排列,這樣如果有重複ip,我們只比較最上面的那條就可以了,具體看**!):如果相同的話,再次比較時間,如果兩者時間差超過半小時則可以投票,否則警告資訊:一台電腦半小時內只能投票一次;如果不相同的話,就是說明這個ip沒有投票過,那麼可以進行投票,同時更新ip和時間紀錄!這種方法也有一致命的漏洞---動態ip位址,比如adsl還有其它的動態變化的ip等等,這樣也就失去作用了。

4.ip+cookie 這種方法又多了一層保障,但是對於動態ip位址+刪除cookie的組合來說還是可以破解的.

5.mac 網絡卡的實體地址在世界唯一,我們可以通過網絡卡的mac位址(實體地址)來進行鎖定電腦,這方法看起來不錯,但是很多軟體都能製造偽mac位址....

6.就是使用者註冊id投票,這樣限制乙個id只能投票一次或者單位時間內只能投1次效果是非常好的,但是乙個人也可以註冊很多使用者id啊!!

7.通過輸入驗證碼的方法,但是很多軟體都能識別驗證碼..

所以上述7中方法沒有一種是100%有效的方法,正所謂「道高一尺,魔高一丈」。

大家根據自己所需

,按照自己的要求選擇

,所謂防君子,不防

投票系統 如何限制單位時間內投票次數

限制對於防止倒票沒有什麼絕對的好方法,尤其是使用者不需註冊的情況下的投票,我們來看看有那些方法來防止倒票 1.session 採用session物件防止重複投票好像還不錯,如果您利用單一瀏覽器進行測試,確實可以證明 session具有防止重複投票的功能,實際上開啟另乙個瀏覽器,session變了,那...

投票系統 如何限制單位時間內投票次數

限制對於防止倒票沒有什麼絕對的好方法,尤其是使用者不需註冊的情況下的投票,我們來看看有那些方法來防止倒票 1.session 採用session物件防止重複投票好像還不錯,如果您利用單一瀏覽器進行測試,確實可以證明session具有防止重複投票的功能,實際上開啟另乙個瀏覽器,session變了,那麼...

統計git提交次數 區域時間內提交次數 提交行數

1.統計git提交次數 所有人的所有提交次數,會展示所有的提交人 提交次數詳情。git log grep author awk sort uniq c sort k1,1nr2.統計時間內提交次數。git log author yourname since 2017 08 01 no merges ...