O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Infra

Firewall de Aplicação Web (WAF) para proteger o site do seu servidor de MU Online

Configure um WAF (Web Application Firewall) na frente do site, painel e API do seu servidor de MU Online, com regras contra SQL injection, XSS, brute force de login e bots de scraping de ranking.

BR Bruno · Atualizado em 31 jul 2026 · ⏱ 16 min de leitura
Resposta rápida

O site de um servidor de MU Online — com login de conta, ranking, loja de doação e painel administrativo — é um dos alvos mais visados por concorrentes e jogadores mal-intencionados. Um Web Application Firewall (WAF) é a camada que fica na frente dessa aplicação e filtra requisições maliciosas antes

O site de um servidor de MU Online — com login de conta, ranking, loja de doação e painel administrativo — é um dos alvos mais visados por concorrentes e jogadores mal-intencionados. Um Web Application Firewall (WAF) é a camada que fica na frente dessa aplicação e filtra requisições maliciosas antes que elas cheguem ao seu código: tentativas de SQL injection contra o formulário de login, XSS no chat do site, brute force na área administrativa e bots que raspam o ranking para clonar seu servidor. Este tutorial mostra como planejar, configurar e testar um WAF de ponta a ponta, tanto em nuvem quanto autogerenciado.

Por que o site de MU precisa de um WAF dedicado

Diferente de um blog estático, o site de um servidor de MU tem múltiplas superfícies sensíveis: formulário de registro de conta, login (compartilhado com o jogo, em muitos casos), painel de resgate de código de doação, API de ranking consumida por terceiros, e às vezes um painel administrativo exposto publicamente. Cada uma dessas superfícies é um vetor de ataque diferente, e um WAF bem configurado cobre todas com um único ponto de controle, sem precisar alterar o código da aplicação a cada nova ameaça descoberta.

Tipos de ataque que um WAF bloqueia

AtaqueComo se manifestaPor que o WAF ajuda
SQL InjectionParâmetro de login/busca com sintaxe SQLBloqueia padrões de sintaxe suspeitos antes do backend
XSS (Cross-Site Scripting)Script injetado em campo de comentário/chatSanitiza/bloqueia tags e scripts no corpo da requisição
Brute force de loginMilhares de tentativas de senha por minutoRate limiting por IP/conta no endpoint de login
Scraping de rankingBot batendo na API de ranking a cada segundoRate limiting + captcha em picos anômalos
Path traversalTentativa de acessar ../../config.phpBloqueia padrões de navegação de diretório na URL
Exploração de uploadUpload de arquivo .php disfarçado de imagemValida tipo real de arquivo, não só extensão

Escolhendo entre WAF em nuvem e autogerenciado

CritérioWAF em nuvem (Cloudflare, Sucuri)WAF autogerenciado (ModSecurity/Nginx)
Facilidade de configuraçãoAlta, painel visualMédia/baixa, exige edição de regras
Atualização de regrasAutomática pelo provedorManual, depende do administrador
CustoGratuito a moderado (planos pagos liberam mais)Sem licença, mas exige tempo técnico
Proteção contra DDoS volumétricoGeralmente incluídaPrecisa de camada adicional
Controle fino por endpointBom nos planos pagosTotal, mas manual

Para a maioria dos servidores de MU, começar com Cloudflare (mesmo no plano gratuito) já cobre uma fatia grande dos ataques automatizados, deixando ModSecurity como complemento para regras muito específicas do seu painel.

Passo 1 — Colocar o domínio atrás de um proxy com WAF

Se ainda não usa, aponte o DNS do domínio para o Cloudflare (ou provedor equivalente) e ative o proxy (nuvem laranja). Isso já esconde o IP real do servidor web e habilita o WAF gerenciado padrão. Confirme que o certificado SSL está em modo Full (strict), não apenas Flexible, para evitar loop de redirecionamento e manter a criptografia ponta a ponta.

Passo 2 — Ativar o conjunto de regras gerenciadas (OWASP)

No painel de segurança do Cloudflare (ou WAF equivalente), ative o conjunto de regras gerenciadas baseado no OWASP Core Rule Set. Rode inicialmente em modo log por 3 a 7 dias, observando quais requisições seriam bloqueadas, antes de mudar para modo de bloqueio ativo — isso evita derrubar tráfego legítimo por falso positivo.

Passo 3 — Criar regras customizadas para endpoints sensíveis

Regras genéricas não cobrem tudo. Adicione regras específicas para o seu site de MU:

# Exemplo de regra (sintaxe Cloudflare Rules)
(http.request.uri.path eq "/login" and rate(1m) > 20) => Block
(http.request.uri.path contains "/api/ranking" and rate(1m) > 60) => Challenge
(http.request.uri.path eq "/admin" and ip.geoip.country ne "BR") => Block
  • Login: limite de tentativas por IP em janela curta, bloqueando brute force.
  • API de ranking: desafio (captcha) acima de um volume que só bot atingiria.
  • Painel admin: restrição geográfica ou por IP fixo, se a equipe é conhecida.

Passo 4 — Configurar ModSecurity como camada complementar (opcional)

Para quem hospeda o próprio servidor web (Nginx/Apache), o ModSecurity com o OWASP Core Rule Set adiciona uma segunda camada, útil mesmo com Cloudflare na frente (defesa em profundidade):

# nginx.conf — habilitando ModSecurity
load_module modules/ngx_http_modsecurity_module.so;

server {
    listen 443 ssl;
    server_name painel.seuservidor.com;

    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;

    location /admin {
        modsecurity_rules '
            SecRuleEngine On
            SecRule REQUEST_URI "@streq /admin" "id:1001,phase:1,deny,status:403,chain"
            SecRule REMOTE_ADDR "!@ipMatch 203.0.113.10"
        ';
    }
}

Esse exemplo bloqueia qualquer IP diferente do IP fixo da equipe ao acessar /admin, mesmo que a requisição passe pelas regras genéricas.

Passo 5 — Proteger o formulário de doação/pagamento

O painel de doação processa dados sensíveis mesmo quando o pagamento em si é feito por gateway externo (PagSeguro, Mercado Pago). Garanta que o WAF valide: tamanho máximo de campos, tipos de caractere esperados (nome não deve aceitar tags HTML), e rate limiting agressivo no endpoint de confirmação de pagamento, que é alvo comum de tentativas de fraude por replay de requisição.

Passo 6 — Testar o WAF sem quebrar o site

  1. Rode uma varredura básica com uma ferramenta de teste de segurança (ex.: OWASP ZAP) apontando para um ambiente de staging, nunca produção sem aviso.
  2. Envie manualmente um payload de teste inofensivo (' OR '1'='1 em um campo de busca) e confirme que é bloqueado.
  3. Teste o fluxo normal do jogador (registro, login, resgate de código) para garantir que nenhuma regra legítima foi bloqueada por engano.
  4. Monitore o painel de eventos do WAF nas primeiras 48h após ativar o modo de bloqueio.

Ajustando falsos positivos

Sinal de falso positivoAção recomendada
Jogadores reclamando de erro 403 ao logarRevise regra de rate limiting do login, aumente o limiar
Formulário de registro rejeitando nomes com acentoAjuste regra de sanitização de caracteres especiais
Ranking não carrega para usuários legítimosSepare regra de bot da API pública de leitura simples
Upload de avatar/print falhandoVerifique regra de validação de tipo de arquivo

Monitoramento contínuo

Configure alertas (e-mail ou webhook para Discord) quando o WAF bloquear um volume anormal de requisições em curto período — isso frequentemente indica um ataque em andamento e não apenas ruído de fundo. Revise o log de eventos do WAF semanalmente nas primeiras semanas após o lançamento do servidor, período de maior exposição a ataques de concorrentes.

Erros comuns e soluções

SintomaCausa provávelSolução
Site fica lento após ativar WAFRegras customizadas mal otimizadasSimplifique regras e use cache antes do WAF
Jogadores legítimos bloqueadosRegra de rate limiting agressiva demaisRode em modo log antes de bloquear, ajuste limiar
SSL quebrado após proxyModo Flexible em vez de Full (strict)Configure certificado válido no servidor de origem
Painel admin ainda expostoRegra de restrição não aplicada ao subdomínio certoConfirme o hostname exato na regra
API de ranking sendo raspada mesmo com WAFRegra de rate limiting não cobre o endpoint realVerifique o path exato usado pela API

Checklist de segurança do WAF

  • Domínio atrás de proxy com SSL Full (strict).
  • Conjunto de regras OWASP ativado, testado em modo log antes do bloqueio.
  • Regras customizadas para login, ranking e painel admin.
  • ModSecurity como camada complementar (se autogerenciado).
  • Formulário de doação com validação e rate limiting.
  • Testes de payload malicioso realizados em staging.
  • Alertas de bloqueio anômalo configurados.
  • Log de eventos do WAF revisado semanalmente no lançamento.

Com o WAF ativo protegendo o site, o próximo passo natural é revisar a segurança da infraestrutura por trás dele — o próprio GameServer e banco de dados — para fechar o ciclo de proteção completo, como descrito no tutorial de criação de servidor de MU Online.

Perguntas frequentes

WAF é o mesmo que firewall de rede comum?

Não. Um firewall de rede (iptables, firewall do provedor) filtra por IP e porta. Um WAF analisa o conteúdo da requisição HTTP (parâmetros, headers, corpo) para bloquear ataques específicos de aplicação web, como SQL injection e XSS, que passariam despercebidos por um firewall comum.

Preciso de WAF se já uso Cloudflare no plano gratuito?

O plano gratuito do Cloudflare já traz um WAF básico com regras genéricas contra os ataques mais comuns (OWASP). Para um servidor de MU com painel de doação e API de ranking, vale a pena avaliar o plano Pro, que libera regras customizadas específicas para os seus endpoints mais sensíveis.

O WAF protege contra DDoS também?

Parcialmente. Um WAF foca em camada de aplicação (L7) e ajuda contra ataques de flood de requisições HTTP. Para DDoS volumétrico (L3/L4, saturação de banda) você precisa de proteção na borda da rede, geralmente já incluída no mesmo provedor (Cloudflare, por exemplo) mas configurada separadamente.

Regras de WAF muito rígidas podem bloquear jogadores reais?

Sim, é o principal risco de configuração errada — chamado de falso positivo. Por isso todo WAF deve rodar em modo 'somente log' por alguns dias antes de ativar o bloqueio automático, permitindo ajustar regras que capturam tráfego legítimo do site ou painel.

Vale a pena um WAF próprio (ModSecurity) em vez de um serviço em nuvem?

Depende do seu nível técnico e orçamento. ModSecurity no próprio servidor dá controle total e custo zero de licença, mas exige manutenção manual de regras. Um WAF em nuvem (Cloudflare, Sucuri) atualiza as regras automaticamente e é mais simples para quem não tem equipe dedicada de segurança.

BR
Editor de eventos, mapas e itens

Bruno é especialista em eventos, mapas, bosses e economia de itens do MU Online. Documenta cada detalhe com base em jogo real.

Continue lendo

Artigos relacionados