Redirecionamento de URL - URL redirection

O redirecionamento de URL , também chamado de encaminhamento de URL , é uma técnica da World Wide Web para disponibilizar uma página da web em mais de um endereço de URL . Quando um navegador da web tenta abrir um URL que foi redirecionado, uma página com um URL diferente é aberta. Da mesma forma, redirecionamento de domínio ou encaminhamento de domínio ocorre quando todas as páginas em um domínio de URL são redirecionadas para um domínio diferente, como quando wikipedia.com e wikipedia.net são redirecionados automaticamente para wikipedia.org .

O redirecionamento de URL é feito por vários motivos:

  • para encurtamento de URL ;
  • para evitar links quebrados quando as páginas da web são movidas;
  • para permitir que vários nomes de domínio pertencentes ao mesmo proprietário se refiram a um único site ;
  • para orientar a navegação dentro e fora de um site;
  • para proteção de privacidade; e
  • para fins hostis, como ataques de phishing ou distribuição de malware.

Objetivos

Existem vários motivos para usar o redirecionamento de URL:

Forçando HTTPS

Um site pode ser potencialmente acessível por meio de um esquema de URI HTTPS seguro e HTTP simples (um URI inseguro que começa com "http: //").

Se um usuário digitar um URI ou clicar em um link que se refere à variante insegura, o navegador redirecionará automaticamente para a versão segura caso o site esteja contido na lista de pré-carregamento HSTS enviada com o aplicativo ou se o usuário já tiver visitado a origem no passado.

Caso contrário, o site será contatado por HTTP. Um operador de site pode decidir atender a essas solicitações redirecionando o navegador para a variante HTTPS e também preparando o HSTS para acessos futuros.

Nomes de domínio semelhantes

Um usuário pode digitar incorretamente um URL. As organizações geralmente registram esses domínios "com erros ortográficos" e os redirecionam para o local "correto". Essa técnica é freqüentemente usada para "reservar" outros domínios de nível superior (TLD) com o mesmo nome ou para tornar mais fácil para um site ".edu" ou ".net" acomodar usuários que digitam ".com".

Mover páginas para um novo domínio

As páginas da web podem ser redirecionadas para um novo domínio por três motivos:

  • um site pode desejar ou precisar alterar seu nome de domínio;
  • um autor pode mover suas páginas individuais para um novo domínio;
  • dois sites podem se fundir.

Com redirecionamentos de URL, os links de entrada para um URL desatualizado podem ser enviados para o local correto. Esses links podem ser de outros sites que não perceberam que há uma alteração ou de marcadores / favoritos que os usuários salvaram em seus navegadores. O mesmo se aplica aos motores de busca . Eles geralmente têm nomes de domínio e links mais antigos / desatualizados em seu banco de dados e enviarão os usuários de pesquisa para esses URLs antigos. Usando um redirecionamento "movido permanentemente" para o novo URL, os visitantes ainda irão para a página correta. Além disso, na próxima passagem do mecanismo de pesquisa, o mecanismo de pesquisa deve detectar e usar o URL mais recente.

Registro de links de saída

Os logs de acesso da maioria dos servidores da web mantêm informações detalhadas sobre a origem dos visitantes e como eles navegaram no site hospedado. Eles não registram, entretanto, quais links os visitantes deixados por. Isso ocorre porque o navegador do visitante não precisa se comunicar com o servidor original quando o visitante clica em um link de saída. Essas informações podem ser capturadas de várias maneiras. Uma maneira envolve o redirecionamento de URL. Em vez de enviar o visitante diretamente para o outro site, os links do site podem direcionar para uma URL no domínio do site original que redireciona automaticamente para o destino real. Essa técnica tem a desvantagem do atraso causado pela solicitação adicional ao servidor do site original. Como essa solicitação adicionada deixará um rastro no log do servidor, revelando exatamente qual link foi seguido, também pode ser um problema de privacidade. A mesma técnica também é usada por alguns sites corporativos para implementar uma declaração de que o conteúdo subsequente está em outro site e, portanto, não necessariamente afiliado à corporação. Em tais cenários, exibir o aviso causa um atraso adicional.

Aliases curtos para URLs longos

Os aplicativos da Web geralmente incluem atributos descritivos extensos em seus URLs, que representam hierarquias de dados, estruturas de comando, caminhos de transação e informações de sessão. Essa prática resulta em um URL esteticamente desagradável e difícil de lembrar, e que pode não se enquadrar nas limitações de tamanho dos sites de microblog . Os serviços de encurtamento de URL fornecem uma solução para esse problema, redirecionando um usuário para uma URL mais longa a partir de uma mais curta.

Aliases significativos e persistentes para URLs longos ou variáveis

Às vezes, o URL de uma página muda, embora o conteúdo permaneça o mesmo. Portanto, o redirecionamento de URL pode ajudar os usuários que possuem marcadores. Isso é feito rotineiramente na Wikipedia sempre que uma página é renomeada.

Publicar / Redirecionar / Obter

Post / Redirect / Get (PRG) é um padrão de design de desenvolvimento web que evita alguns envios de formulários duplicados se o usuário clicar no botão Atualizar após enviar o formulário, criando uma interface mais intuitiva para os agentes do usuário (usuários).

Segmentação por dispositivo e segmentação geográfica

Os redirecionamentos podem ser usados ​​com eficácia para fins de segmentação, como segmentação geográfica . A segmentação por dispositivo tornou-se cada vez mais importante com o aumento de clientes móveis. Existem duas abordagens para atender aos usuários móveis: tornar o site responsivo ou redirecionar para uma versão de site móvel. Se uma versão de site móvel for oferecida, os usuários com clientes móveis serão automaticamente encaminhados para o conteúdo móvel correspondente. Para a segmentação por dispositivo, são usados ​​redirecionamentos do lado do cliente ou redirecionamentos do lado do servidor que não podem ser armazenados em cache. A segmentação geográfica é a abordagem para oferecer conteúdo localizado e encaminhar automaticamente o usuário para uma versão localizada da URL solicitada. Isso é útil para sites que têm como público-alvo mais de um local e / ou idioma. Normalmente, os redirecionamentos do lado do servidor são usados ​​para segmentação geográfica, mas os redirecionamentos do lado do cliente também podem ser uma opção, dependendo dos requisitos.

Manipulando mecanismos de pesquisa

Redirecionamentos têm sido usados ​​para manipular mecanismos de pesquisa com intenções antiéticas, por exemplo, sequestro de URL . O objetivo dos redirecionamentos enganosos é direcionar o tráfego de pesquisa para as páginas de destino, que não têm poder de classificação suficiente por conta própria ou que são apenas remotamente ou não estão relacionadas ao alvo de pesquisa. A abordagem requer uma classificação para uma gama de termos de pesquisa com uma série de URLs que utilizariam redirecionamentos sorrateiros para encaminhar o pesquisador para a página de destino. Este método teve um renascimento com o surgimento de dispositivos móveis e segmentação por dispositivo. O sequestro de URL é uma técnica de redirecionamento fora do domínio que explora a natureza da manipulação do mecanismo de pesquisa para redirecionamentos temporários. Se um redirecionamento temporário for encontrado, os mecanismos de pesquisa devem decidir se atribuem o valor de classificação ao URL que inicializa o redirecionamento ou ao URL de destino do redirecionamento. A URL que inicia o redirecionamento pode ser mantida para aparecer nos resultados da pesquisa, pois o redirecionamento indica uma natureza temporária. Sob certas circunstâncias, era possível explorar esse comportamento aplicando redirecionamentos temporários para URLs bem classificados, levando à substituição do URL original nos resultados da pesquisa pelo URL que inicializou o redirecionamento, "roubando" a classificação. Esse método geralmente era combinado com redirecionamentos sorrateiros para redirecionar o fluxo do usuário dos resultados da pesquisa para uma página de destino. Os motores de busca desenvolveram tecnologias eficientes para detectar esses tipos de abordagens manipulativas. Os principais mecanismos de pesquisa geralmente aplicam severas penalidades de classificação em sites que são pegos aplicando técnicas como essas.

Manipulando visitantes

O redirecionamento de URL às vezes é usado como parte de ataques de phishing que confundem os visitantes sobre o site que estão visitando. Como os navegadores modernos sempre mostram o URL real na barra de endereço, a ameaça é reduzida. No entanto, os redirecionamentos também podem levá-lo a sites que, de outra forma, tentarão atacar de outras maneiras. Por exemplo, um redirecionamento pode levar um usuário a um site que tentaria induzi-lo a baixar um software antivírus e instalar algum tipo de cavalo de Tróia .

Removendo referrerinformações

Quando um link é clicado, o navegador envia junto com a solicitação HTTP um campo denominado referer que indica a origem do link. Este campo é preenchido com a URL da página da web atual e vai parar nos logs do servidor que atende o link externo. Como as páginas confidenciais podem ter URLs confidenciais (por exemplo, http://company.com/plans-for-the-next-release-of-our-product), não é desejável que o referrerURL saia da organização. Uma página de redirecionamento que executa a ocultação de referenciador pode ser incorporada em todos os URLs externos, transformando-se, por exemplo, http://externalsite.com/pageem http://redirect.company.com/http://externalsite.com/page. Essa técnica também elimina outras informações potencialmente confidenciais do URL referenciador, como a ID da sessão , e pode reduzir a chance de phishing , indicando ao usuário final que ele passou um gateway claro para outro site.

Implementação

Vários tipos diferentes de resposta ao navegador resultarão em um redirecionamento. Eles variam quanto ao fato de afetarem os cabeçalhos HTTP ou o conteúdo HTML. As técnicas usadas geralmente dependem da função da pessoa que as implementa e de seu acesso às diferentes partes do sistema. Por exemplo, um autor da web sem controle sobre os cabeçalhos pode usar uma metatag Atualizar, enquanto um administrador de servidor da web que redireciona todas as páginas de um site tem mais probabilidade de usar a configuração do servidor.

Redirecionamento manual

A técnica mais simples é pedir ao visitante para seguir um link para a nova página, geralmente usando uma âncora HTML como:

Please follow <a href="http://www.example.com/">this link</a>.

Este método é frequentemente usado como um fallback - se o navegador não suportar o redirecionamento automático, o visitante ainda pode acessar o documento de destino seguindo o link.

Códigos de status HTTP 3xx

No protocolo HTTP usado pela World Wide Web , um redirecionamento é uma resposta com um código de status começando com 3 que faz com que um navegador exiba uma página diferente. Se um cliente encontrar um redirecionamento, ele precisará tomar várias decisões sobre como lidar com o redirecionamento. Códigos de status diferentes são usados ​​pelos clientes para entender o propósito do redirecionamento, como lidar com o cache e qual método de solicitação usar para a solicitação subsequente.

HTTP / 1.1 define vários códigos de status para redirecionamento (RFC 7231):

  • 300 escolhas múltiplas (por exemplo, oferecer idiomas diferentes)
  • 301 movido permanentemente (redireciona permanentemente de um URL para outro, passando o valor do link para a página redirecionada)
  • 302 encontrado (originalmente "redirecionamento temporário" em HTTP / 1.0 e popularmente usado para scripts CGI; substituído por 303 e 307 em HTTP / 1.1, mas preservado para compatibilidade com versões anteriores)
  • 303 ver outro (força uma solicitação GET para o novo URL, mesmo se a solicitação original for POST)
  • 307 redirecionamento temporário (fornece um novo URL para o navegador reenviar uma solicitação GET ou POST)
  • 308 redirecionamento permanente (fornece um novo URL para o navegador reenviar uma solicitação GET ou POST)

Os códigos de status 304 não modificados e 305 usam proxy não são redirecionamentos.

Redirecionar códigos de status e características
Código de status HTTP Versão HTTP Temporário permanente Cacheable Método de Solicitação Solicitação Subseqüente
301 HTTP / 1.0 Permanente sim GET / POST pode mudar
302 HTTP / 1.0 Temporário não por padrão GET / POST pode mudar
303 HTTP / 1.1 Temporário nunca sempre OBTER
307 HTTP / 1.1 Temporário não por padrão pode não mudar
308 HTTP / 1.1 Permanente por padrão pode não mudar

Todos esses códigos de status exigem que o URL do destino de redirecionamento seja fornecido no cabeçalho Location: da resposta HTTP. As 300 escolhas múltiplas geralmente listarão todas as opções no corpo da mensagem e mostrarão a escolha padrão no cabeçalho Local :.

Exemplo de resposta HTTP para um redirecionamento 301

Uma resposta HTTP com o redirecionamento 301 "movido permanentemente" tem a seguinte aparência:

HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/
Content-Type: text/html
Content-Length: 174

<html>
<head>
<title>Moved</title>
</head>
<body>
=Moved=
<p>This page has moved to <a href="http://www.example.org/">http://www.example.org/</a>.</p>
</body>
</html>

Usando scripts do lado do servidor para redirecionamento

Os autores da Web que produzem conteúdo HTML geralmente não podem criar redirecionamentos usando cabeçalhos HTTP, pois eles são gerados automaticamente pelo programa do servidor da Web ao servir um arquivo HTML. O mesmo é geralmente verdadeiro até mesmo para programadores que escrevem scripts CGI, embora alguns servidores permitam que scripts adicionem cabeçalhos personalizados (por exemplo, habilitando "cabeçalhos não analisados"). Muitos servidores da web gerarão um código de status 3xx se um script gerar uma linha de cabeçalho "Location:". Por exemplo, em PHP , pode-se usar a função "cabeçalho":

header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.example.com/');
exit();

Mais cabeçalhos podem ser necessários para evitar o armazenamento em cache. O programador deve garantir que os cabeçalhos sejam exibidos antes do corpo. Isso pode não se ajustar facilmente ao fluxo natural de controle por meio do código. Para ajudar com isso, algumas estruturas para geração de conteúdo do lado do servidor podem armazenar os dados do corpo. Na linguagem de script ASP , isso também pode ser feito usando response.buffer=truee response.redirect "http://www.example.com/"HTTP / 1.1 permite uma referência URI relativa ou uma referência URI absoluta. Se a referência de URI for relativa, o cliente calcula a referência de URI absoluta necessária de acordo com as regras definidas no RFC 3986.

Mod_rewrite do servidor Apache HTTP

A extensão mod_alias do Apache HTTP Server pode ser usada para redirecionar certas solicitações. As diretivas de configuração típicas se parecem com:

Redirect permanent /oldpage.html http://www.example.com/newpage.html
Redirect 301 /oldpage.html http://www.example.com/newpage.html

Para reescrever e redirecionar URLs mais flexíveis , o mod_rewrite do Apache pode ser usado. Por exemplo, para redirecionar uma solicitação para um nome de domínio canônico:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.:]+\.)*oldsite\.example\.com\.?(:[0-9]*)?$ [NC]
RewriteRule ^(.*)$ http://newsite.example.net/$1 [R=301,L]

Essa configuração pode ser aplicada a um ou todos os sites no servidor por meio dos arquivos de configuração do servidor ou a um único diretório de conteúdo por meio de um .htaccessarquivo.

nginx reescrever

O Nginx possui um módulo de reescrita de http integrado, que pode ser usado para realizar processamento avançado de URL e até mesmo geração de página da web (com a returndiretiva). Um exemplo de uso avançado do módulo de reescrita é mdoc.su , que implementa um serviço de encurtamento de URL determinístico inteiramente com a ajuda da linguagem de configuração nginx.

Por exemplo, se uma solicitação de /DragonFlyBSD/HAMMER.5viesse junto, primeiro seria redirecionado internamente para /d/HAMMER.5com a primeira diretiva de reescrita abaixo (afetando apenas o estado interno, sem nenhuma resposta HTTP emitida para o cliente ainda) e, em seguida, com a segunda reescrita directiva, uma resposta HTTP com um código de status Encontrado 302 seriam emitidos para o cliente para redirecionar realmente ao externo script CGI de web- homem :

 location /DragonFly {
  rewrite ^/DragonFly(BSD)?([,/].*)?$ /d$2 last;
 }
 location /d {
  set $db "http://leaf.dragonflybsd.org/cgi/web-man?command=";
  set $ds "&section=";
  rewrite ^/./([^/]+)\.([1-9])$  $db$1$ds$2 redirect;
 }

Atualizar meta tag e cabeçalho de atualização HTTP

A Netscape introduziu o recurso de atualização meta , que atualiza uma página após um determinado período de tempo. Isso pode especificar um novo URL para substituir uma página por outra. Isso é compatível com a maioria dos navegadores da web. Um tempo limite de zero segundos efetua um redirecionamento imediato. Isso é tratado como um redirecionamento 301 permanente pelo Google, permitindo a transferência do PageRank para a página de destino.

Este é um exemplo de documento HTML simples que usa esta técnica:

<html>
<head>
  <meta http-equiv="Refresh" content="0; url=http://www.example.com/" />
</head>
<body>
  <p>Please follow <a href="http://www.example.com/">this link</a>.</p>
</body>
</html>

Essa técnica pode ser usada por autores da web porque a metatag está contida no próprio documento. A metatag deve ser colocada na seção "head" do arquivo HTML. O número "0" neste exemplo pode ser substituído por outro número para obter um atraso de alguns segundos. A âncora na seção "corpo" é para usuários cujos navegadores não suportam esse recurso.

O mesmo efeito pode ser obtido com um refreshcabeçalho HTTP :

HTTP/1.1 200 OK
Refresh: 0; url=http://www.example.com/
Content-Type: text/html
Content-Length: 78

Please follow <a href="http://www.example.com/">this link</a>.

Essa resposta é mais fácil de gerar por programas CGI porque não é necessário alterar o código de status padrão.

Aqui está um programa CGI simples que efetua este redirecionamento:

# !/usr/bin/perl
print "Refresh: 0; url=http://www.example.com/\r\n";
print "Content-Type: text/html\r\n";
print "\r\n";
print "Please follow <a href=\"http://www.example.com/\">this link</a>!"

Nota: Normalmente, o servidor HTTP adiciona a linha de status e o cabeçalho Content-Length automaticamente.

O W3C desencoraja o uso de atualização meta, uma vez que não comunica nenhuma informação sobre o recurso original ou novo para o navegador (ou mecanismo de busca ). As Diretrizes de Acessibilidade de Conteúdo da Web do W3C (7.4) desencorajam a criação de páginas de atualização automática, uma vez que a maioria dos navegadores não permite que o usuário desative ou controle a taxa de atualização. Alguns artigos que eles escreveram sobre o assunto incluem as Diretrizes de acessibilidade do conteúdo da Web do W3C (1.0): Garanta o controle do usuário sobre alterações de conteúdo urgentes , Use redirecionamentos padrão: não quebre o botão Voltar! e Técnicas Básicas para Diretrizes de Acessibilidade de Conteúdo da Web 1.0 seção 7.

Redirecionamentos de JavaScript

JavaScript pode causar um redirecionamento ao definir o window.locationatributo, por exemplo:

window.location='http://www.example.com/'

Normalmente, o JavaScript empurra a URL do site do redirecionador para o histórico do navegador. Isso pode causar loops de redirecionamento quando os usuários pressionam o botão Voltar. Com o comando a seguir, você pode evitar esse tipo de comportamento.

window.location.replace('http://www.example.com/')

No entanto, os cabeçalhos HTTP ou a meta tag de atualização podem ser preferidos por motivos de segurança e porque o JavaScript não será executado por alguns navegadores e muitos rastreadores da web .

Redirecionamentos de quadros

Um efeito ligeiramente diferente pode ser obtido criando um quadro embutido :

<iframe height="100%" width="100%" src="http://www.example.com/">
Please follow <a href="http://www.example.com/">link</a>.
</iframe>

Uma diferença principal para os métodos de redirecionamento acima é que, para um redirecionamento de quadro, o navegador exibe a URL do documento do quadro e não a URL da página de destino na barra de URL. Essa técnica de camuflagem pode ser usada para que o leitor veja um URL mais fácil de lembrar ou para ocultar de maneira fraudulenta um site de phishing como parte de um spoofing de site .

Antes do HTML5, o mesmo efeito poderia ser feito com um frame HTML que contém a página de destino:

<frameset rows="100%">
  <frame src="http://www.example.com/">
  <noframes>
    <body>Please follow <a href="http://www.example.com/">link</a>.</body>
  </noframes>
</frameset>

Redes de redirecionamento

Um redirecionamento pode levar a outro. Por exemplo, o URL " http://wikipedia.com " (com "* .com" como domínio) é primeiro redirecionado para https://www.wikipedia.org/ (com nome de domínio em .org ), onde você pode navegue até o site específico do idioma . Isso é inevitável se os diferentes links na cadeia forem servidos por servidores diferentes, embora deva ser minimizado reescrevendo o URL tanto quanto possível no servidor antes de devolvê-lo ao navegador como um redirecionamento.

A Wikipedia tem redirecionado suas páginas para HTTPS por padrão desde 2015.

Loops de redirecionamento

Às vezes, um erro pode fazer com que uma página acabe redirecionando de volta para si mesma, possivelmente por meio de outras páginas, levando a uma sequência infinita de redirecionamentos. Os navegadores devem parar de redirecionar após um certo número de saltos e exibir uma mensagem de erro.

O padrão HTTP / 1.1 afirma:

Um cliente DEVE detectar e intervir em redirecionamentos cíclicos (ou seja, loops de redirecionamento "infinitos").

Nota: Uma versão anterior desta especificação recomendava um máximo de cinco redirecionamentos ([RFC 2068], Seção 10.3). Os desenvolvedores de conteúdo precisam estar cientes de que alguns clientes podem implementar essa limitação fixa.

Observe que os URLs na sequência podem não se repetir, por exemplo: http://www.example.com/1 -> http://www.example.com/2 -> http://www.example.com/3 ...

Serviços

Existem serviços que podem realizar o redirecionamento de URL sob demanda, sem a necessidade de trabalhos técnicos ou acesso ao servidor web onde seu site está hospedado.

Serviços de redirecionamento de URL

Um serviço de redirecionamento é um sistema de gerenciamento de informações, que fornece um link de internet que redireciona os usuários para o conteúdo desejado. O benefício típico para o usuário é o uso de um nome de domínio memorável e uma redução no comprimento do URL ou endereço da web. Um link de redirecionamento também pode ser usado como um endereço permanente para conteúdo que muda frequentemente de host, de forma semelhante ao Sistema de Nomes de Domínio . Os hiperlinks que envolvem serviços de redirecionamento de URL são freqüentemente usados ​​em mensagens de spam direcionadas a blogs e wikis. Portanto, uma maneira de reduzir o spam é rejeitar todas as edições e comentários que contenham hiperlinks para serviços de redirecionamento de URL conhecidos; no entanto, isso também removerá edições e comentários legítimos e pode não ser um método eficaz para reduzir o spam. Recentemente, os serviços de redirecionamento de URL passaram a usar AJAX como um método eficiente e amigável para a criação de URLs encurtados. Uma grande desvantagem de alguns serviços de redirecionamento de URL é o uso de páginas de atraso, ou publicidade baseada em quadros, para gerar receita.

História

Os primeiros serviços de redirecionamento aproveitaram os domínios de primeiro nível (TLD), como " .to " (Tonga), " .at " (Áustria) e " .is " (Islândia). Seu objetivo era fazer URLs memoráveis. O primeiro serviço de redirecionamento convencional foi o V3.com, que alcançou 4 milhões de usuários em seu pico em 2000. O sucesso do V3.com foi atribuído a uma ampla variedade de domínios curtos memoráveis, incluindo "r.im", "go.to", "i .am "," come.to "e" start.at ". A V3.com foi adquirida pela FortuneCity.com, uma grande empresa de hospedagem gratuita na web, no início de 1999. Como o preço de venda de domínios de nível superior começou a cair de $ 70,00 por ano para menos de $ 10,00, o uso de serviços de redirecionamento diminuiu. Com o lançamento do TinyURL em 2002, um novo tipo de serviço de redirecionamento nasceu, nomeadamente o encurtamento de URL . Seu objetivo era encurtar URLs longos, para poder publicá-los em fóruns da Internet. Desde 2006, com o limite de 140 caracteres no serviço extremamente popular do Twitter , esses serviços de URL curto têm sido muito usados.

Máscara de referência

Os serviços de redirecionamento podem ocultar o referenciador , colocando uma página intermediária entre a página em que o link está e seu destino. Embora sejam conceitualmente semelhantes a outros serviços de redirecionamento de URL, eles têm uma finalidade diferente e raramente tentam encurtar ou ofuscar o URL de destino (já que o único efeito colateral pretendido é ocultar informações de referência e fornecer um gateway claro entre outros sites. ) Este tipo de redirecionamento é freqüentemente usado para evitar que links potencialmente maliciosos obtenham informações usando o referenciador, por exemplo, um ID de sessão na string de consulta. Muitos grandes sites de comunidade usam redirecionamento de link em links externos para diminuir a chance de um exploit que poderia ser usado para roubar informações da conta, bem como deixar claro quando um usuário está deixando um serviço, para diminuir a chance de um phishing eficaz .

Aqui está um exemplo simplista de tal serviço, escrito em PHP .

<?php
$url = htmlspecialchars($_GET['url']);
header('Refresh: 0; url=https://' . $url);
?>
<!-- Fallback using meta refresh. -->
<html>
 <head>
  <title>Redirecting...</title>
  <meta http-equiv="refresh" content="0;url=https://<?= $url; ?>">
 </head>
 <body>
 Attempting to redirect to <a href="https://<?= $url; ?>">https://<?= $url; ?></a>.
 </body>
</html>

O exemplo acima não verifica quem o chamou (por exemplo, por referenciador, embora isso possa ser falsificado). Além disso, ele não verifica o URL fornecido. Isso significa que uma pessoa mal-intencionada pode se conectar à página de redirecionamento usando um parâmetro de URL de sua escolha, a partir de qualquer página que utilize os recursos do servidor web.

Problemas de segurança

O redirecionamento de URL pode ser abusado por invasores para ataques de phishing , como redirecionamento aberto e redirecionamento secreto . "Um redirecionamento aberto é um aplicativo que pega um parâmetro e redireciona um usuário para o valor do parâmetro sem qualquer validação." "Covert redirect é um aplicativo que pega um parâmetro e redireciona o usuário para o valor do parâmetro SEM validação SUFICIENTE." Foi divulgado em maio de 2014 pelo estudante de doutorado em matemática Wang Jing, da Universidade Tecnológica de Nanyang, de Cingapura.

Veja também

Referências

links externos