Pular para o conteúdo
>_ITDITDPlataforma de Segurança Web

Glossário

O que é open redirect — sua URL confiável usada como trampolim para outro site

Um open redirect permite que uma URL do seu site encaminhe visitantes para qualquer site externo, então seu domínio confiável vira trampolim para phishing. Como funciona e a defesa real (allowlist de destinos, nunca aceitar URLs externas) — explicado de forma defensiva, sem passos de ataque.

Publicado 2026-06-10 Atualizado 2026-06-10 3 min de leitura

"O início da URL era meu domínio real, mas clicar nela me levou a um site completamente diferente" — isso é um open redirect. Veja como funciona e como evitá-lo de forma confiável (sem passos de ataque).

Por que é perigoso

O dano central é a confiança emprestada do seu domínio.

Como é abusadoO que acontece
Trampolim de phishingO link começa com o domínio real → usuários e filtros confiam → vão para um site falso
Sequestro de fluxo de autenticaçãoAdulteração do destino de redirecionamento em fluxos do tipo OAuth para capturar um token/código
Amplificação de outras falhasCombinado com SSRF ou XSS para ampliar o impacto

Por que funciona

Aparece em recursos como "levar o usuário de volta para onde estava após o login", onde a URL de retorno é confiada e encaminhada como está. O "início" da URL que o usuário vê é o domínio real, então é difícil desconfiar dela do começo ao fim.

dominioreal/login?next= (o início é confiável)
uma URL externa é plantada em next=
↓ o site encaminha sem validar o destino
o usuário cai em um site falso achando que clicou no real = phishing
O início é o domínio real, então há confiança. Encaminhe uma URL externa não verificada vinda do parâmetro e ele vira um trampolim.

Defesa: não aceite URLs externas

1

Permita apenas caminhos relativos (o mais importante)

Aceite destinos de retorno como /dashboardapenas caminhos relativos — e rejeite URLs completas (que começam com http:// ou //). Não dê espaço para o usuário especificar um domínio de destino.

2

Compare com uma allowlist

Se você precisar de destinos dinâmicos, permita apenas entradas de um conjunto fixo de destinos conhecidos (um mapa). Qualquer outra coisa recai em uma página padrão.

3

Não confie em verificações de string

//evil, barras invertidas, @ e codificação múltipla contornam filtros ingênuos. Mude o que você aceita (relativo + allowlist) em vez de remendar filtros.

4

Se precisar sair do site, deixe explícito

Quando redirecionamentos externos forem intencionais, exiba uma página intermediária ("Você está saindo para um site externo"). Não encaminhe silenciosamente.

A visão deste site: 'baixo' sozinho, mas potente junto com phishing

Open redirects costumam ser classificados como baixo risco por si só, mas como emprestam a confiança do seu domínio, tornam-se potentes combinados com phishing ou sequestro de autenticação. Por isso uma medida em nível de projeto — caminhos relativos + allowlist — elimina a raiz com eficiência. Espelha o SSRF (fazer o servidor se conectar a qualquer lugar): ambos compartilham o princípio de defesa de nunca deixar o usuário decidir o destino.

Leia a seguir

FAQ

QPor que um open redirect é um problema?
A

O primeiro domínio da URL é o seu domínio real e confiável (por exemplo, uma página de login), então usuários e filtros de e-mail clicam nele com confiança. Mas o site os encaminha para qualquer site externo, então seu domínio real vira trampolim para phishing e ponto de apoio para roubar tokens em fluxos de autenticação.

QQual é a principal defesa?
A

Não aceite URLs externas como destino de redirecionamento. Para caminhos de retorno após o login, permita apenas caminhos relativos (/dashboard) e compare com uma allowlist (um conjunto fixo de destinos conhecidos). Se você realmente precisar enviar usuários para fora do site, exiba uma página intermediária avisando que estão saindo.

QVerificar por http:// é suficiente?
A

Não. Formas sem esquema (//evil.example), barras invertidas, codificação e URLs confusas com @ contornam verificações ingênuas. Em vez de julgar a string, projete o sistema para nunca aceitar uma URL externa (caminhos relativos + allowlist).