2009-12-23 194 views
2

我有一个不断攻击我的网站之一的漫游器/黑客的IP地址列表。我想通过知识产权阻止这些访问者,并试图为此制定出“最佳”方法。我的网站使用C#ASP.NET MVC。禁止通过禁止的IP地址访问网站

我有一个IP的List<int>

放置校验码的最佳位置在哪里?我正在考虑使用母版页的Page_Load事件,但也可以将它放在每个控制器的筛选器中...

什么HTML会返回到禁止的IP?我不愿意返回“因为您的IP被禁止而被阻止的网站”,因为这会给黑客提供他们需要的信息来解决该问题。这样做的好处是它可以让无辜的用户在交火中陷入无法访问该网站的原因。我目前的感觉是,我应该返回一个“正在维护的网站”通知。

什么HTTP状态码应该返回假“维护站点”通知?我想200

网站的服务器2003

+0

如何将IP纳入列表? :) – Ariel 2009-12-23 17:07:48

+2

IP地址是一个32位序列。巧合的是,'System.Int32'也是如此。请注意,IP地址通常以特定格式表示为文本:十进制表示中的八位字节并以句点分隔。 – yfeldblum 2009-12-23 17:10:38

+0

对于那些有兴趣的方法,将IP转换为Int - > http://www.justin-cook.com/wp/2006/11/28/convert-an-ip-address-to-ip-number-with- php-asp-c-and-vbnet/ – Nate 2009-12-23 17:55:13

回答

2

虽然你可能会阻止您向外的服务器上的IP地址(你的web服务器很明显,但你可能有其他的),这个列表将需要被复制。通过阻塞服务器,您不仅可以使解决方案过于复杂,而且还提供了一种不完全安全的方法。

阻止网络流量的正确点,无论是端口选择列表还是IP地址,都可以在网络上尽可能远地获得。这通常是入口点的防火墙/路由器。这些网络设备针对这个目的进行了优化,并且远远超出了这个目的。取决于您的网络设备的制造商,功能集将会有很大的不同。

我建议你:

  • 确定所有路由器/在 最外层边界防火墙。这是可能的 你只有一个,除非你加载 平衡。
  • 了解如何为这些 设备配置ACL (访问控制列表)。
  • 根据您的IP 地址列表修改ACL以阻止。
  • 总是在其他地方保存您的网络备份 设备配置。

显而易见这只是安全的冰山一角。也许在某个时候,你需要与DOS(拒绝服务攻击)相抗衡,然后一些 - 哦,很有趣。

祝你好运。

12

上运行如果你觉得从一个特定的IP您的网站被“黑客”,你不应该阻止该IP的软件,非常的事,他们打算妥协。阻止的IP应该在防火墙处被阻止。

+4

或者如果你不能在防火墙中做到这一点,在IIS中执行。 – 2009-12-23 17:03:59

+0

优秀的建议。 – 2009-12-23 17:04:23

+0

那么我如何在IIS或防火墙中做到这一点?另外你会返回到阻止的IP? – Guy 2009-12-23 17:08:11

3

由于以下几个原因,我不得不同意David的看法。

  1. 通过阻止软件黑客/机器人将仍然能够滥用您的资源(带宽,处理器时间等)。

  2. 软件不能保护您的网站免受DOS攻击。

  3. 如果黑客好,他们会找到解决软件块的方法。

  4. 更新阻止代码将需要重新编译您的应用程序。

你的答案在防火墙中。设置规则阻止用户,他们将无法连接。

发送一个“正在维护”页面是一个可怕的想法,因为它会混淆普通用户并不会阻止一个好的黑客...

+0

如果普通用户是无辜的受害者,他们将不会被混淆通过阻止在防火墙以前滥用的IP地址?即您必须将某些东西返还给客户端?那是什么? – Guy 2009-12-23 17:11:31

+0

Guy: @ 1:请参阅http://www.google.com/search?q=block+ip+address+iis @ 2:将其留给浏览器。它会吐出一条好消息,例如“Firefox无法建立与的服务器连接”。 – reinierpost 2009-12-23 17:31:46

+0

没有“漂亮”的方式来显示这样的消息。更好地使用IP地址来避免误报 – Ariel 2009-12-23 17:35:05

2

我会把代码放在一个尽可能快的地方,在服务器消耗太多资源之前。

我想说你应该尽可能少地发回信息,最好是HTTP状态503(暂时不可用),用一条短消息链接到一个可接受的页面,或者一个页面向人们解释为什么他们可能会有一些原因阻止,如果他们觉得他们被阻止不公平,该怎么办。您可能希望以文本/纯文本而不是HTML来执行此操作,因为它将使用较少的字节:)

当您有大量阻止的地址(例如100万)时,使用阻止的IP的内存列表也会中断,因为扫描它变得过度(记住,您需要为相关资源的每个请求执行此操作)。

最终,您将需要一种方法将阻止的IP列表分发到您的所有Web服务器和/或将其集中保存 - 具体取决于您正在获取或预期的是哪种滥用。

话虽如此,你应该明确应用YAGNI原则。如果您没有遇到真正的容量问题,请不要打扰阻止滥用者。实际上,很少有网站会这样做,其中大部分是与运行网站相关的大量费用(如Google搜索)的东西。