У меня есть приложение, использующее TIdHttpServer. Как установить таймаут для медленных сокетов при написании сообщений?
Недавнее сканирование безопасности моего приложения выявило некоторые уязвимости, связанные с подключением клиентов к веб-серверу. Основная уязвимость заключалась в том, что клиенты, отправляющие медленные запросы на сервер, не отбрасывались. Чтобы исправить это, я добавил ReadTimeout к клиентским соединениям в событии OnConnect сервера.
procedure TForm1.IdHTTPServer1Connect(AContext: TIdContext);
begin
AContext.Connection.Socket.ReadTimeout := 15000;
end;
После добавления этого изменения более новое сканирование безопасности показало, что сервер сбрасывает тайм-аут после приема пакета изклиент. Чтобы решить эту проблему, я пытаюсь найти способ установить тайм-аут записи для сокетов, а не показанный ReadTimeout. Другими словами, я не хочу, чтобы данные для записи в сокет обновляли тайм-аут, который контролирует разрыв соединения. Можно ли это сделать?