Cuidado com os parâmetros passados pela URL
Tudo bom pessoal?
Hoje vou falar algo muito simples mas que faz muita diferença em um sistema(web): Parâmetros passados pela URL.
Recentemente recebi acesso full por sete dias à um site de ensino de inglês(prefiro não falar qual é o site). Com o acesso full, os usuários podem fazer downloads dos ‘podcasts’ das aulas… que são arquivos MP3 onde são apresentadas situações cotidianas(em inglês), mas, tudo muito bem explicado pelo professor.
Mas, os downloads tem um limite: 14 downloads por mês.
Fui fazer um download, e para minha surpresa, o meu ID do banco de dados é passado via GET pela URL. Então pensei: Vou testar a segurança do site!
Adivinhem o que aconteceu?
Sim! se vc respondeu que a validação para saber se ja baixei 14 arquivos é feita por este parâmetro você acertou em cheio!!!
Então lembre-se sempre: NUNCA PASSE PARÂMETROS IMPORTANTES PELA URL.
OBS: Alterando o meu ID na URL para 1, eu poderia baixar todos os arquvos do site(mp3, pdf das aulas…). Pois pensei: normalmente, o primeiro usuário do banco de dados é do dono do site ou do usuário administrador.
Espero ter ajudado!



3 Comentários to “Cuidado com os parâmetros passados pela URL”
Marcelo, excelente dica, esse trabalho q vc fez deveria ser básico para quem desenvolve sites, não adianta ótimos designs e usabilidade se requisitos mínos de segurança não são verificados…está aí uma coisa legal, um auditor externo de segurança, vc ia ganhar uma graninha hein?
abs!
Por Vinicius (1 comments) em 03/05/2009
Boa dica o ideal e não passar pelo metodo get e sempre fazer validação quando o script recebe uma string seja por post ou get ^_^ vlw
Por Alexandre Broggio (4 comments) em 11/05/2009
Fui questionado sobre não passar o ID do usuário pela URL no exemplo que dei do site.
Neste caso, como o usuário precisa estar logado no site, provávelmente o site deve ter os dados do usuário na sessão(pois mostra o nome da pessoa logada)… com o ID na sessão, pode-se contabilizar os downloads com segurança.
Por Marcelo Sabadini (101 comments) em 05/06/2009