什麼是一些代碼示例,我可以用來阻止人們投票,通過黑客攻擊php腳本來給他們更高的評分?停止使用PHP劫持投票系統的人?
回答
國防的第一線是一塊餅乾。
基本上,你在他們的機器上設置了cookie,並且如果它存在則禁用投票。
setcookie('cookiename', 'voted=1');
// and later
if(isset($_COOKIE['cookiename']) && $_COOKIE['cookiename'] = "voted=1")
{
// error
}
這樣可以避免爲驗證其投票而需要進行的數據庫調用。保持這一點是一個好主意,因爲它就像緩存:少數人對數據庫的命中率更高。
第二道防線是IP限制。你基本上會檢查數據庫中的IP地址日誌,看看他們最近是否投了票。
mysql_query('INSERT INTO TABLE (`IP_ADDR`, `TIME`) VALUES("'.$_SERVER['REMOTE_ADDR'].'", "'.time().'")');
// and later
$results = mysql_query('SELECT IP_ADDR FROM TABLE WHERE IP_ADDR="'.$_SERVER['REMOTE_ADDR'].'"');
if(mysql_num_rows($results) != 0)
{
// error
}
把你的整個腳本到的東西沿着
if(isset($_COOKIE['cookiename']) && $_COOKIE['cookiename'] = "voted=1")
{
die("You have voted recently.");
}
$results = mysql_query('SELECT IP_ADDR FROM TABLE WHERE IP_ADDR="'.$_SERVER['REMOTE_ADDR'].'"');
if(mysql_num_rows($results) != 0)
{
die("You have voted recently");
}
//Do Voting Stuff Here
vote($_GET['vote']);
// Record the vote.
setcookie('cookiename', 'voted=1');
mysql_query('INSERT INTO TABLE (`IP_ADDR`, `TIME`) VALUES("'.$_SERVER['REMOTE_ADDR'].'", "'.time().'")');
行您還可以在到期的時間及增加,但它的基本JIST是存在的。
注意:如果您在數據庫中發現他們最近投了票,您可能需要重置Cookie。 –
將cookie設置爲已投票的用戶並且不允許投票一段時間。
除了cookies保護之外,還增加了ip地址保護功能。單個IP地址每一段時間只能投一次。 ip保護的好選擇是通過組合方案(ip + user_agent + ...)進行保護。
要求用戶在操作過快時輸入驗證碼。
順便說一句,你不需要保持整個IP日誌。只保留最近1個小時的日誌 - 這將甚至足夠。 – Kirzilla
一對夫婦的想法:
- 使用CAPTCHA
- 記錄IP地址(按照您的隱私政策,當然)
阻止他們這樣做的唯一方法是建立一個良好的用戶認證系統。除此之外,你可以通過使用cookies和Captcha來阻止它。
- 1. AJAX + PHP投票系統
- 2. php-mysql投票系統?
- 3. 如何防止遊戲投票系統,人們可以每天投票一次?
- 4. 如何建立投票系統來支持多種投票類型的投票?
- 5. 在投票系統上只允許每個人投一票
- 6. jQuery投票系統
- 7. Java投票系統
- 8. 在投票系統
- 9. 投票系統java
- 10. 如何投票投票系統?
- 11. jQuery,PHP和Smarty的投票系統
- 12. 帶有會話的PHP投票系統?
- 13. 的MySQL/PHP邏輯「投票」系統
- 14. 簡單的PHP投票系統
- 15. 計算投票 - PHP和MySQL投票系統
- 16. 停止會話劫持
- 17. PHP + MySQL限制IP投票系統
- 18. php投票系統 - 數據庫問題
- 19. 投票系統在PHP和MySQL的狀態投票,像總統選舉
- 20. 投票系統與jQuery AJAX
- 21. Symfony框架投票系統
- 22. 投票系統問題
- 23. 開源投票系統
- 24. 投票系統在ASP.NET MVC
- 25. 投票系統問題
- 26. PHP投票系統,如何阻止垃圾郵件?
- 27. 使用單選按鈕和複選框的投票系統(PHP)
- 28. PHP/MySQL:在投票系統中,如何讓用戶看到他已投票的個人資料?
- 29. 投票系統,簡單VS有用
- 30. 使用PHP的票務系統
呃,我不明白這個問題。當然,腳本運行在用戶無法訪問的服務器上,對吧?也就是說,他們不應該訪問實際的PHP腳本,只能調用它。 –
我的朋友,你將不得不進入更多的細節。 :) –