我希望能夠通過IP來禁止用戶。我的想法是將IP列表保留在BannedIPs表中(IP列將作爲索引)。通過IP使用php/mysql禁止
要檢查用戶的IP對錶,我會爲每個會話保留一個名爲$ _SESSION ['IP']的會話變量。如果有任何請求,$ _SESSION ['IP']與$ _SERVER ['REMOTE_ADDR']不匹配,我將更新$ _SESSION ['IP']並檢查BannedIPs表以查看IP是否被禁止。 (A標誌也將被保存爲一個會話變量指定用戶是否被禁止)
這裏的事情,我想知道:
- 這聽起來像關於速度的好策略和安全(有人能夠以某種方式繞過IP禁令,除了更改IP,編輯:或使用代理)?
- 什麼是最好的方式來構造一個MySQL查詢,檢查是否存在一行?也就是說,查詢數據庫以查看是否存在具有特定IP的行(檢查它是否被禁止)的最佳方法是什麼?
- 我應該將IP保存爲整數或字符串嗎?
注意...
- 我估計會有1000-10000之間禁止IP的存儲在數據庫中。
- $ _SERVER ['REMOTE_ADDR']是發送當前請求的IP。
不知道這一點,但在我的大學裏,每個人都有相同的知識產權,所以如果你的網站與學校有關,這可能是一個問題。 – ggfan 2010-06-06 22:30:06
@ggfan:我的網站與學校無關 - 但這是一個很好的觀點。不過,如果我想禁止某個建築物/學校的人,我確實寧願整個地方都被禁止,所以這很好。 – Cam 2010-06-06 22:34:01
不僅僅是學校,還有許多具有代理服務器的組織。公司,圖書館等 – Jeff 2010-06-06 22:34:04