我如何禁止 IP 地址访问我的网站。另外,将 IP 地址存储在文本文件、php 文件或数据库中是否更好。
我想要一个黑名单。
我正在使用 Apache。
另外,我希望黑名单是特定于应用程序的。
这主要是为了防止有人利用该网站。我不希望来自同一 IP 的人每 2 秒反复加载我的小工具一次以上。
答案1
我会为此使用单独的防火墙。存储 IP 地址列表的位置取决于
- 您想要黑名单还是白名单
- 此列表是静态的还是动态的(不过静态只对白名单有意义)
- 您拥有哪种类型的 Web 服务器(Apache、IIS、...)
请提供更多信息。
问候,弗兰克
答案2
这很大程度上取决于你到底想要什么。
要静态禁止某些特别滥用的 /16 子网,最简单的方法是安装防火墙规则。我建议岸墙因为它比原始版本更加用户友好。将 4-5 个子网列入黑名单可以神奇地将噪音率降低 99%,这太神奇了。
要动态禁止脚本小子,只需安装失败2ban是一个几乎不需要任何工作的有效解决方案。
或者,您可以自己进行相同的动态禁止,但随后您需要进行一些记账(IP 地址会发生变化,因此除非您时不时地解除阻止,否则最终会将整个互联网列入黑名单!)。在这种情况下,数据库比纯文本文件更合适。
如果您不喜欢使用防火墙,因为您觉得它像是巫术,您仍然可以在 .htaccess 文件中使用 DENY。这对您的 php 页面来说“同样”有效,但效率会低得多,并且不会阻止某人试图利用您的 SSH。