【发布时间】:2020-02-20 04:11:36
【问题描述】:
我有一个使用 TIdHttpServer 的应用程序。如何为写入消息缓慢的套接字设置超时?
最近对我的应用程序进行的安全扫描发现了一些与连接到网络服务器的客户端有关的漏洞。主要漏洞是向服务器发送慢速请求的客户端没有被丢弃。为了解决这个问题,我在服务器的 OnConnect 事件中将 ReadTimeout 添加到客户端连接。
procedure TForm1.IdHTTPServer1Connect(AContext: TIdContext);
begin
AContext.Connection.Socket.ReadTimeout := 15000;
end;
添加此更改后,更新的安全扫描显示服务器在接受来自客户端的数据包后重置超时。为了解决这个问题,我试图想出一种方法来为套接字建立写超时,而不是显示的 ReadTimeout。换句话说,我不希望套接字写入数据来刷新控制连接被丢弃的超时。这个可以吗?
【问题讨论】:
标签: sockets delphi timeout indy httpserver