TsgcWebSocketHTTPServerPropriedades › MaxMessageSize

MaxMessageSize Propriedade

Tamanho máximo em bytes de uma mensagem WebSocket recebida; protege o servidor contra ataques de esgotamento de memória.

Sintaxe

property MaxMessageSize: Int64 read FMaxMessageSize write FMaxMessageSize;

Valor Padrão

67108864 (64 MB). Use 0 para ilimitado.

Observações

Uma mensagem WebSocket não tem limite de tamanho inerente, portanto um cliente malicioso pode tentar esgotar a memória do servidor de várias maneiras: declarando um tamanho de frame enorme, nunca finalizando uma mensagem fragmentada (um fluxo infinito de frames de continuação) ou enviando um pequeno frame per-message-deflate que se infla para gigabytes (uma "bomba de descompressão"). MaxMessageSize limita as três situações: o servidor rejeita um frame cujo tamanho declarado exceda o limite, restringe o tamanho total de uma mensagem fragmentada remontada e aborta a descompressão assim que a saída inflada atinge o limite. Quando o limite é excedido, a conexão é fechada com o código de fechamento WebSocket 1009 (Message Too Big).

O padrão de 64 MB é seguro para a grande maioria das aplicações. Aumente-o se a sua aplicação trocar legitimamente mensagens maiores, ou reduza-o para apertar o limite de memória em um servidor exposto publicamente. Um valor de 0 desabilita o limite (não recomendado para servidores acessíveis a partir de redes não confiáveis). Independentemente desse valor, um tamanho de frame de 64 bits com o bit mais significativo definido é sempre rejeitado como erro de protocolo, portanto o limite não pode ser contornado por estouro de inteiro.

A mesma propriedade está disponível em TsgcWebSocketServer e no servidor http.sys TsgcWebSocketServer_HTTPAPI. Para limitação de taxa de conexões e de mensagens, combine-a com RateLimiter e Firewall.

Exemplo


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Port := 80;
// accept messages up to 16 MB, close 1009 on anything larger
oServer.MaxMessageSize := 16 * 1024 * 1024;
oServer.Active := true;

Voltar para Propriedades