我希望能够通过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