Prevenção de Floods

Como qualquer outra aplicação web rodando na internet, aplicações uniGUI podem ser vulneráveis a floods que podem levar a uma condição de DOS (Negação de Serviço).

Felizmente o uniGUI oferece mecanismos internos para prevenir efeitos colaterais indesejados de floods. O efeito colateral mais importante é a criação de muitas sessões que não pertencem a usuários reais. Essas sessões consomem recursos do sistema e podem impedir que usuários reais criem novas sessões, causando uma condição de DOS.

Para evitar isso você pode usar um ou mais dos mecanismos abaixo.

1

Prevenção Anti Flood por endereço IP

Esse recurso pode ser habilitado em ServerModule->ServerLimits->AntiFloodPerIP.

Essa propriedade implementa um mecanismo simples de prevenção de flood impedindo que sessões sejam criadas muito rapidamente. A unidade dessa propriedade é milissegundos.

  • Um valor zero significa que nenhuma prevenção de flood é aplicada.

  • Valores maiores que zero habilitam a prevenção de flood. A aplicação mantém controle de cada endereço IP e do intervalo de tempo entre a criação de novas sessões. Se o intervalo de tempo entre duas criações de sessão for menor que o valor dessa propriedade, uma exceção será levantada.

Exemplo: se esse valor for configurado para 1000, cada IP remoto deve esperar pelo menos 1 segundo (1000 ms) antes de poder criar uma nova sessão. Para um cenário típico, um valor entre 250–1000 ms geralmente é suficiente. Um valor de 250 indica que não mais do que 4 sessões podem ser criadas por segundo a partir do mesmo endereço IP.

Observe que um grupo de computadores em uma LAN pode compartilhar o mesmo endereço IP externo, então quando eles se conectam a um servidor uniGUI remoto pode parecer que todos vêm do mesmo IP. Considere isso ao ajustar o valor da propriedade.

Valor padrão: 0 (Sem proteção anti-flood)

Para clusters HyperServer esse recurso deve ser habilitado no nível do HyperServer. Esse recurso pode ser habilitado no arquivo CFG do HyperServer. Veja: https://unigui.com/doc/online_help/installing-and-configuring-hyp.htm

2

Limitando uma sessão por endereço IP

Habilite isso definindo ServerModule->ServerLimits->SessionRestrict para srOnePerIP.

Quando habilitado, o servidor uniGUI criará apenas uma sessão por endereço IP conectado. Se mais de uma requisição de sessão vier do mesmo endereço IP, a sessão criada anteriormente será destruída e uma nova sessão será criada. Isso impede que seu servidor seja inundado com múltiplas sessões de um único endereço IP.

Valor padrão: srNone (Sem restrição)

Para clusters HyperServer esse recurso deve ser habilitado no nível do HyperServer. Esse recurso pode ser habilitado no arquivo CFG do HyperServer. Veja: https://unigui.com/doc/online_help/installing-and-configuring-hyp.htm

3

Limitando uma sessão por computador

Habilite isso definindo ServerModule->ServerLimits->SessionRestrict para srOnePerPC.

Quando definido, o servidor tentará permitir apenas uma sessão por PC remoto. Para conseguir isso, o servidor armazena um cookie no PC cliente e o verifica cada vez que uma nova sessão é criada. Isso força cada PC a rodar apenas uma sessão por navegador. Entretanto, a restrição pode ser contornada usando navegadores diferentes no mesmo PC (por exemplo, uma sessão no Firefox e outra no Chrome).

Isso garante que seu servidor não possa ser inundado com múltiplas sessões de um único PC ou navegador.

Para clusters HyperServer esse recurso deve ser habilitado no nível do HyperServer. Esse recurso pode ser habilitado no arquivo CFG do HyperServer. Veja: https://unigui.com/doc/online_help/installing-and-configuring-hyp.htm

circle-exclamation