o tópico é do dark tive um problema na hora de mover aqui e to postando de novo
Segurança em formulários - ('Or '1' = '1)
Olá.. hoje falarei sobre segurança nos formulários.. principalmente nos Logins!
Muitos novatos desenvolvem seus sites.. pensando que está tudo OK, e tudo mais.. mas na verdade, quando tratamos de algum sistema de onde o usuário se cadastra, e depois efetua o eventual Login, não podemos vacilar.. pois hoje em dia, são muitos os "hackers" por aí... e por isso, toda a segurança é bem vinda!
Bom, para os que não sabem, na maioria dos sites onde tem um sistema de membros, e um botão para efetuar o "LOGIN", se não for muito bem esquematizado, qualquer um pode efetuar um login... mesmo sem saber senha alguma!
É.. é isso mesmo..
Mas isso não acontece em todos as páginas, acontece geralmente nas páginas feitas por gente que não entende muito de SQL, ou até mesmo de Asp..
Bom.. na prática é muito simples.. é só você ir até algum site, e digitar uma aspa simples (') .. e depois clicar em enviar, submit, login, ou algo do genero..
Se ao clicar nesse botão, gerar um belo erro de script, então é isso mesmo.. caminho está livre!
Como fazer? Simples!
Apenas digite no login e na senha:
'OR '1' = '1 .. isso irá liberar um user logado para você!
Geralmente ele logará com o primeiro REGISTRO do banco de dados.. mas pode acontecer de ser aleatório.. isso depende da estrutura do site em questão..
Imaginem isso: O cara se cadastra em um site de compras online, e lá põe seus dados como CPF, Cartão de crédito, RG, e tudo mais.. para depois se logar, e fazer as compras, que serão debitadas no user dele.. no site mesmo..
Imaginem se alguém se loga no nome dele, rouba os dados, e ainda faz uma compra gigantesca!
Perigoso, não?
E como resolver isso?
Simples! Apenas temos que fazer com que não dê erro em nossas paginas quando alguém digitar o caracter (').. a famosa aspa simples...
Para fazer isso é assim:
A aspa simples é o caracter 39 do teclado..
então usamos um comando que substitui ela por duas delas, pois aí o comando sql entende como se fosse apenas uma, e envia só uma pro BD!
Pergunta
bareta
o tópico é do dark tive um problema na hora de mover aqui e to postando de novo
Segurança em formulários - ('Or '1' = '1)
Olá.. hoje falarei sobre segurança nos formulários.. principalmente nos Logins!
Muitos novatos desenvolvem seus sites.. pensando que está tudo OK, e tudo mais.. mas na verdade, quando tratamos de algum sistema de onde o usuário se cadastra, e depois efetua o eventual Login, não podemos vacilar.. pois hoje em dia, são muitos os "hackers" por aí... e por isso, toda a segurança é bem vinda!
Bom, para os que não sabem, na maioria dos sites onde tem um sistema de membros, e um botão para efetuar o "LOGIN", se não for muito bem esquematizado, qualquer um pode efetuar um login... mesmo sem saber senha alguma!
É.. é isso mesmo..
Mas isso não acontece em todos as páginas, acontece geralmente nas páginas feitas por gente que não entende muito de SQL, ou até mesmo de Asp..
Bom.. na prática é muito simples.. é só você ir até algum site, e digitar uma aspa simples (') .. e depois clicar em enviar, submit, login, ou algo do genero..
Se ao clicar nesse botão, gerar um belo erro de script, então é isso mesmo.. caminho está livre!
Como fazer? Simples!
Apenas digite no login e na senha:
'OR '1' = '1 .. isso irá liberar um user logado para você!
Geralmente ele logará com o primeiro REGISTRO do banco de dados.. mas pode acontecer de ser aleatório.. isso depende da estrutura do site em questão..
Imaginem isso: O cara se cadastra em um site de compras online, e lá põe seus dados como CPF, Cartão de crédito, RG, e tudo mais.. para depois se logar, e fazer as compras, que serão debitadas no user dele.. no site mesmo..
Imaginem se alguém se loga no nome dele, rouba os dados, e ainda faz uma compra gigantesca!
Perigoso, não?
E como resolver isso?
Simples! Apenas temos que fazer com que não dê erro em nossas paginas quando alguém digitar o caracter (').. a famosa aspa simples...
Para fazer isso é assim:
A aspa simples é o caracter 39 do teclado..
então usamos um comando que substitui ela por duas delas, pois aí o comando sql entende como se fosse apenas uma, e envia só uma pro BD!
a sintaxe é:
Var_User = Replace(Request.Form("user"),chr(39),"''")
ou, podemos usar a aspa mesmo!
Var_User = Replace(Request.Form("user"),"'","''")
e façam o mesmo para o campo senha..
isso substitui a aspa simples por duas aspas simples.. e apenas uma é inserida no BD! e isso não ocasiona erro algum.
E esse comando, é bem útil em qualquer transação que você for fazer com SQL e banco de dados!
Bom gente.. é isso aí! vocês acham que tem um site seguro? Faz um testezinho lá..
hehehehe
Até mais !!
Abraços!
Dark0!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.