首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IP封禁--最有效的方式?

IP封禁--最有效的方式?
EN

Stack Overflow用户
提问于 2011-02-04 17:41:41
回答 8查看 3.1K关注 0票数 5

我经营着一个大型论坛,像其他人一样,我也遇到了垃圾邮件发送者/机器人的问题。有大量的已知垃圾IP列表,您可以下载和使用htaccess的形式,但我唯一关心的是文件大小。所以我想问题是,考虑到它将为每个用户加载,多大就太大了。把所有的IP加起来大约是100kb。

有没有一种开销更小的替代方案?可能是用php做的,或者由于文件大小和检查ips等原因,这也会导致一些繁重的负载?

任何建议都将不胜感激。

谢谢,

史蒂夫

EN

回答 8

Stack Overflow用户

发布于 2011-02-04 17:49:12

通常有比知识产权禁令更有效的方法。例如,只有机器人才会填写表单中的隐藏字段,或者需要javascript或cookie才能提交表单。

对于IP禁用,我不会使用.htaccess文件。根据您的for服务器,它可能会读取每个请求的htaccess文件。我肯定会将IP-bans添加到您的add服务器vhost配置中。这样我就可以确保way服务器会将其保存在RAM中,而不会一次又一次地读取它。

通过PHP也是一种选择。这样,您还可以轻松地将禁令限制在表单上,如在您的论坛中注册。

票数 3
EN

Stack Overflow用户

发布于 2011-02-04 17:48:10

有几个选项:

  • 您可以将阻止列表存储到数据库中。你可以用array_map(ip2long())对列表进行预处理,以节省内存和可能的查找时间。
  • 你可以将IP列表打包成一个正则表达式,也许可以通过一个优化器(Perl Regexp:: optimizer )来运行它。PCRE测试将再次比foreach和strpos测试更快。$regex = implode("|", array_map("preg_quote", file("ip.txt")));

但是,IP黑名单通常不是很可靠。也许你应该实现另外两个变通方法:隐藏表单字段来检测哑巴机器人。或者captchas来阻止非人类(不是非常友好的用户,但解决了问题)。

票数 2
EN

Stack Overflow用户

发布于 2011-02-04 17:45:26

那么,您正在构建一个地址数据库,对吧?为它使用数据库产品不是很有用吗?如果你还没有,SQLite可以胜任这项任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4896519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档