zoukankan      html  css  js  c++  java
  • 服务器端如何防止DDOS

    服务器端如何防止DDOS
    前面说到DSServer的OnConnect是socket已经完全搭好client都调用connect的服务器方法了才触发的,如果我们到这里才来想起拒绝不合法的ip连接,已经挺晚了:socket已经连接好了,都已经创建线程开始通讯了。

    怎么做才能在最开始的socket握手里,就让捣蛋鬼死在萌芽中呢。

    要解决这个问题,当然得从TDSTCPServerTransport下手,因为ServerTransport才是真正负责通讯的,可以在它的OnConnect事件下手

     procedure TServerContainer1.DSTCPServerTransport1Connect(   Event: TDSTCPConnectEventObject);

    var  conn: TIdTCPConnection;

    begin 

    conn := Event.Connection as TIdTCPConnection;  

    LogInfo('From ' + conn.Socket.Binding.PeerIP + '(' + IntToStr(conn.Socket.Binding.PeerPort) + ')');

     end;

    在这里,就能得到连接上来的IP了,在blacklist里的ip,就可以直接  conn.Disconnect。当然,由于indy的架构,线程也是已经创建了的,要真正解决DDOS,下回再重述一下Indy架构来看看如何下手。

  • 相关阅读:
    简单封装的ajax请求
    mysql-8.0 安装教程(自定义配置文件,密码方式已修改)
    计算机专业术语
    mvc路由
    Chosen三级联动
    Chosen通用初始化
    .NET Core学习之路
    Sql的一些常规判断
    CORS 跨域
    SQL 的一个技巧
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2365836.html
Copyright © 2011-2022 走看看