【问题标题】:How to blacklist an IP on TIdHTTPServer如何将 TIdHTTPServer 上的 IP 列入黑名单
【发布时间】:2013-03-20 06:33:39
【问题描述】:

TIdHTTPServer 组件中,我想启用要阻止的 IP 地址黑名单。我想确保这是尽可能低的级别,以防止任何不必要的数据从列入黑名单的客户端流入。我应该如何拦截此服务器组件以在可能的最低级别上阻止 IP?这适用于 IP v4 和 v6

【问题讨论】:

  • 即使您这样做了,有什么办法可以阻止他们使用代理或其他物理位置来规避 IP 禁令?没有任何技术解决方案可以将坚定的用户拒之门外。
  • 您可以在OnBeforeConnect 事件处理程序中终止连接尝试。不确定,但我想Abort 应该这样做。
  • @Mason True,但我仍然需要实施某种黑名单并阻止对其进行任何形式的访问。
  • @Mason,通常不是完全禁止某人,正如你所说的那样是不可能的。通常您希望限制来自扫描仪、DOS 攻击或类似攻击的损害。例如,谷歌会限制你在一段时间内可以在他们的 SMTP 上进行多少次查询。如果你超过了,他们会暂时禁止你的 IP。这可以确保他们保留自己的带宽,并防止最幼稚的邮件收集尝试。
  • @Downvoter 我不明白这怎么没用,或者这是一个糟糕的问题,答案清楚地表明 Indy 在最新版本中删除了此功能;大多数用户无法猜到的东西。

标签: delphi delphi-xe2 indy indy10 blacklist


【解决方案1】:

在 Indy 9 上,有一个在连接被实际接受之前拒绝连接的事件。在 Indy 10 上,它仍未实现。

如果您查看 IdCustomTCPServer.pas,procedure TIdListenerThread.Run 中有一条关于向用户公开事件以让他们决定是否应接受连接的评论。

我会修改源代码并在那里实现它。

如果这不适合您,那么您可以在 OnConnect 事件中断开它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2021-08-07
    • 2020-03-31
    相关资源
    最近更新 更多