2009-11-26 25 views
2

我正在構建一個PHP/MySQL輪詢系統,我想知道是否有比設置cookie +保存用戶IP地址以及稍後檢查更安全的方法。保護PHP/MySQL輪詢系統

謝謝。

回答

0

不,只有你可以做的事情來保護投票系統是要求註冊或有效的電子郵件地址。

+2

任何人有幾百個電子郵件地址的? – 2009-11-26 11:48:22

+0

有效意味着用戶必須確認電子郵件中的每個投票,我認爲任何人都不會達到這個程度。 – dfilkovi 2009-11-26 12:13:27

+0

你只需要創建一個接受一切的郵件。然後將一些插件添加到您的郵件服務器(或者創建一個輪詢您的郵件服務器的應用程序)來解析確認url並在那裏啓動連接。 – Arkh 2009-11-26 12:43:25

0

除非您準備強制人們創建用戶帳戶(然後將選票鎖定到某個帳戶),否則根據我的經驗,這幾乎是您所能做的。

2

輪詢系統的問題在於,您希望用戶只能投票一次。除非您要求提供無法僞造的個人信息,否則此問題無法解決。

1

是的,用戶/密碼是唯一的方法。如果您想在使用用戶身份驗證時保持簡單,請使用Facebook Connect。現在幾乎每個人都有FB,並在few minutes你可以運行它。

+0

順便說一句,IP地址可能會改變。我的ADSL幾乎每天都在發生。 – Sergi 2009-11-26 12:04:13

1

我同意以前最安全的是存儲投票和用戶帳戶信息(ID)。

如果你需要簡單的投票無需註冊唯一的辦法是:

  • 在客戶端使用的東西更持久(看https://github.com/samyk/evercookie
  • 在服務器端 - 存儲有關投票客人的所有可能的信息用戶(操作系統,瀏覽器等)
  • 對此數據執行一些簡單的啓發式或條件(如果os,IP和某些參數相同,則可能是同一用戶)
  • 不允許短時間投票(如操作系統,IP和度量是相同的,並且時間小於X秒)
  • 日誌最大樣的信息和適應您的系統
  • 正確告知用戶什麼打開即您的投票中去,是被剝奪了,因爲你已經投
  • 拒絕奇怪的投票(沒有操作系統等)
  • 在適當的地方使用MySQL索引!
  • 您也可以湊一些信息部分和只搜索相同的哈希值(IP,操作系統,瀏覽器)