Quando um usuário é bloqueado, a mensagem genérica de "access denied" que ele vê não é apenas uma saída técnica; é parte da experiência de segurança da organização. O cliente corporativo, o cidadão, o parceiro de negócio ou o usuário final quer entender por que foi retido, o que precisa fazer e se isso é temporário ou permanente. Páginas de erro grosseiras e sem marca transformam a decisão de segurança em uma experiência não profissional.
Durante um ataque DDoS ou de bots, mostrar apenas um erro ao usuário muitas vezes não é suficiente. Deve-se explicar ao usuário real que aguarde um curto período, que sua requisição está sendo validada, que o tráfego automatizado está sendo separado e que a operação continuará. A contagem regressiva, o challenge e o fluxo de CAPTCHA cumprem, neste ponto, tanto função de segurança quanto de comunicação.
Em ambientes multilíngues e multi-tenant, a mesma página não serve a todos. Um banco pode querer mostrar uma explicação em seu idioma e com suas cores corporativas; um provedor de serviços pode querer usar logo e texto diferentes para cada tenant; um endpoint de API, por sua vez, deve retornar uma mensagem de erro JSON em vez de HTML. Uma única página de bloqueio fixa não consegue atender a essas necessidades.
O código de motivo também é importante para a central de ajuda e as equipes de segurança. Quando o usuário recebe um erro, a equipe de suporte precisa poder entender qual regra, qual decisão de bot ou qual ação WAAP entrou em ação. Mas essa informação deve ser dada de forma controlada; em alguns casos é mostrada ao usuário, em outros é mantida apenas no log e no fluxo de suporte.
A abordagem do TR7 retira as páginas de bloqueio da condição de saída de erro estática retornada após a decisão de segurança; transforma-as em uma experiência WAAP personalizável com marca, idioma, código de motivo, CAPTCHA, challenge DDoS e formatos de resposta de API.
O TR7 gerencia as páginas de bloqueio com templates prontos, render EJS, retorno de resposta nativo e injeção de código de motivo.
Há estruturas de template separadas para challenge DDoS, validação JavaScript, CAPTCHA, erro de proteção de bots e AAM 503. Cada tipo de página pode ser projetado conforme uma experiência do usuário e uma decisão de segurança diferentes.
As páginas CAPTCHA são criadas com templates EJS. Tema, tamanho, fundo, cor de texto e dicionário de idioma podem ser aplicados durante a renderização.
O TR7 pode retornar a resposta de bloqueio ou challenge sem ir ao backend. Essa abordagem reduz a latência e impede que carga desnecessária recaia sobre a camada de aplicação no momento do ataque.
O reason code e variáveis de request personalizadas podem ser inseridos no template de forma controlada. Isso ajuda as equipes de suporte a distinguir o motivo do erro e, quando necessário, a dar ao usuário uma explicação significativa.
A Personalização de Página de Bloqueio do TR7 gerencia centralmente respostas HTML, CAPTCHA, challenge e JSON para diferentes decisões WAAP.
O TR7 pode usar páginas de challenge específicas para cenários DDoS. Essas páginas podem conter contagem regressiva, informação ao usuário e mensagens de validação. Explica-se ao usuário real que sua requisição está sendo processada e que continuará em breve. Assim, no momento do ataque garante-se não apenas o bloqueio, mas uma experiência do usuário gerenciável.
As páginas de JS solver DDoS apoiam o fluxo de validação por meio do comportamento do navegador. Com lógica de controle no lado do cliente, busca-se separar o tráfego automatizado. Arquivos prontos em múltiplos idiomas podem ser usados. A necessidade de novo idioma ou texto diferente pode ser atendida pela estrutura do template.
Os templates de CAPTCHA criam a experiência de CAPTCHA. Há opções de tema `auto`, `dark` e `light`; podem ser usados os tamanhos `small`, `medium` e `large`. A cor de fundo e a de texto podem ser ajustadas por parâmetros. Essa estrutura torna a validação de segurança compatível com a identidade visual da organização.
Na configuração de CAPTCHA podem ser usados os tipos texto ou invisível. O CAPTCHA de texto é adequado a situações que exigem que o usuário responda explicitamente. O modo invisível, por sua vez, pode ser preferido em cenários que demandam menor atrito. Assim, o mesmo controle de segurança é ajustado conforme diferentes objetivos de experiência do usuário.
O TR7 vem com dicionários de texto de CAPTCHA prontos em múltiplos idiomas. Cerca de 16 campos de texto como título, descrição, campo de entrada, enviar, atualizar, validando, sucesso, falha, erro e expirado podem ser gerenciados por idioma. Novos idiomas podem ser estendidos adicionando-os ao objeto de tradução dentro do template. O usuário pode adicionar o idioma que quiser; a estrutura multilíngue é assim fornecida.
Cada vService pode usar uma aparência e um comportamento diferentes com seu próprio valor de configuração de CAPTCHA. Isso é importante em aplicações que operam sob multi-tenant, MSSP ou diferentes marcas. No mesmo TR7, cada aplicação pode operar com sua própria cor, idioma, texto e estilo de validação. O controle de segurança permanece central enquanto a experiência do usuário é separada.
Para decisões de proteção de bots pode-se usar uma página de erro específica. Quando um agente de usuário ruim, um comportamento de automação ou uma regra de proteção de bots é disparado, pode-se retornar ao usuário uma resposta separada. Essa página pode ser personalizada conforme a linguagem de marca e o processo de suporte. O código de motivo técnico pode ser mantido internamente se desejado, ou mostrado de forma controlada se desejado.
Quando o backend está inacessível ou o pool temporariamente não consegue atender, pode-se usar uma página AAM 503 específica. Essa página impede que o usuário veja um erro de navegador em branco ou uma interrupção de conexão sem sentido. Manutenção planejada, sobrecarga temporária ou problema de acesso ao serviço podem ser apresentados com uma mensagem mais compreensível. A organização preserva sua marca e o direcionamento de suporte mesmo no momento do erro.
O TR7 pode retornar, em ações WAAP, uma resposta personalizada com status code, content type e conteúdo de arquivo específicos. Pode-se usar página HTML, texto simples ou um corpo de erro JSON para endpoints de API. Pode-se aplicar um modelo de retorno de conteúdo baseado em arquivo ou inline. Essa flexibilidade cria uma experiência de bloqueio diferente para usuários web e clientes de API.
No conteúdo da página podem ser inseridas variáveis de request ou códigos de motivo no nível da transaction. A central de ajuda pode entender mais rapidamente, com a captura de tela ou o código de erro vindos do usuário, qual decisão de segurança entrou em ação. A equipe de segurança pode definir como política quais informações serão mostradas ao usuário e quais permanecerão apenas no lado do log. Essa estrutura aumenta a velocidade de debug enquanto mantém sob controle o risco de vazamento de informação.
Para o funcionamento confiável das páginas de bloqueio, planejam-se em conjunto a entrega de arquivos, a adição de idiomas, a escolha de status code, as variáveis dinâmicas e a gestão de assets estáticos.
Para adicionar um novo idioma ao template de CAPTCHA, pode-se definir um novo dicionário de idioma no objeto de tradução correspondente. Os textos de título, erro, validação e espera são separados por idioma. Essa abordagem vincula o suporte multilíngue não a uma lista de produto fixa, mas a uma estrutura de template extensível.
Para as páginas de CAPTCHA e challenge, o base path, o caminho de serviço do JavaScript, o arquivo HTML e o arquivo JavaScript podem ser gerenciados por campos de configuração separados. Essa separação garante que os conteúdos estáticos sejam servidos pelo caminho correto. Em múltiplos tipos de página, a organização dos arquivos permanece mais legível.
Quando determinada condição ocorre, o TR7 pode produzir diretamente resposta HTML ou JSON com a lógica de retorno de resposta nativo. Essa resposta é produzida sem ir ao backend. Em challenge, CAPTCHA e ações WAAP personalizadas, a latência e a carga sobre a aplicação são assim reduzidas.
Para diferentes cenários podem ser usados diferentes valores de HTTP status code. Enquanto o fluxo de CAPTCHA pode ser apresentado com 200, decisões de limite ou bloqueio podem ser retornadas com códigos como 403, 413, 451 ou 503. Escolher o código semântico correto para usuários de API e web aumenta a qualidade da integração.
Logos, SVGs ou conteúdos visuais podem ser inseridos no HTML de forma inline ou em base64. Esse método pode reduzir a dependência de assets separados e facilita produzir uma página personalizada de arquivo único. A marca da organização pode ser adicionada à página por meio de um layout HTML personalizado.
Os arquivos prontos de challenge DDoS e validação JS podem ser acompanhados por um mecanismo de vinculação dinâmica de arquivos. Quando o arquivo é atualizado, o conteúdo correspondente é refletido na camada de serviço. Essa estrutura ajuda a manter as páginas estáticas atualizadas sem transformar isso em uma operação manual de reinício de serviço.
Um banco pode usar uma página de CAPTCHA ou bloqueio personalizada com tema branco/azul, logo corporativo, explicação no idioma local e link de suporte. Enquanto o código de motivo é ocultado do usuário, a equipe de suporte pode examinar a causa real pelo log.
Quando o tráfego de automação aumenta em período de campanha, pode-se mostrar ao usuário real uma página de challenge DDoS com contagem regressiva. O usuário continua o fluxo de compra após uma validação curta, enquanto o tráfego de bots é separado.
Uma instituição pública pode retornar, em determinadas decisões de acesso, uma página personalizada com explicação localizada. Explica-se ao usuário, em linguagem corporativa, por que o acesso foi restringido e a qual canal de suporte recorrer.
Em serviços de API, retornar uma resposta 403 ou 429 em formato JSON em vez de uma página HTML é mais correto. O TR7, com uma ação WAAP personalizada, injeta o valor de reason no corpo JSON, permitindo que as aplicações cliente tratem o erro programaticamente.
Páginas de bloqueio personalizáveis para DDoS, CAPTCHA, proteção de bots e ações WAAP. Vamos ver juntos como funciona na sua própria configuração.