renatodex Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 Bom, então! A minha pergunta é a seguinte.Tem algum risco se meu script php acessar o banco de dados sem pedir a senha, por exemplo:O usuario vai e digita os dados:Login: CicranoSenha: 127rg9Quando ele submeter eu vou gerar a seguinte instrucao sql.SELECT * FROM tbluser WHERE 1 AND Nome = 'nome' Ai eu pego as informacoes que eu preciso, saio e faco a consulta do modo correto:SELECT * FROM tbluser WHERE 1 AND Nome = '$nome' And Senha = '$senha'Tem algum risco? No meio dessa primeira conexao tem algum risco? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 seu script esta sem segurança nenhumabasta um sql injection e qualquer um entra la sem saber sua senhae outra dica sempre abra a conexao só na hora que for realmente usare fechar assim que usar nunca abra no começo da pagina e fecha no final delaoutra dica não verifique os dados cru direto pra tabela passe ele por parametros primeiro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 Não em relação a segurança, está nos padrões. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 Opa Gladisson do jeito que ele ta fazendo não tem segurança ele só esta execultando o sql mais nadado jeito que ta ali eu entro sem saber a senha dele Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Outubro 31, 2004 Autor Denunciar Share Postado Outubro 31, 2004 hueahaua, gente, tipu, eu preciso acessar o mysql sem a senha, porque lá tem um numero necessario para poder validar a senha, e que é gerado diferente a cada cadastro. Entenderam?Mas eu só abro a conexao pra armazenar esse numero em uma variavel e já fecho essa conexao e abro a certa, que precisa do login e a senha. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 A primeira quey já está com o nome, não tem segurança mesmo está aberto, mais a segunda está com variaveis. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Outubro 31, 2004 Autor Denunciar Share Postado Outubro 31, 2004 Mas gente, tem algum problema se eu abrir uma query só pra pegar um codigo e dpois fechar de novo.1) Abro uma query sem pedir a senha.2) Armazeno o valor do codigo3) Fecho a query.4) Abro a query correta pedindo a senha e o login5) Se o usuario digitar ambas corretamente eu permito on login, caso contrario não. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 Claro não tem problema, mais não pode existir membro com nome iguais. Mais esse código que você vai pegar é pra utilizar na query segunda ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Outubro 31, 2004 Autor Denunciar Share Postado Outubro 31, 2004 isso! é pra utilizar na segunda query, e com certeza não podem existir membros iguais, mais isso eu já tratei na hora do cadastro. Gente, erro meu, la na primeira query, tah assim Nome = 'nome' .Na verdade esse 'nome' é uma variavel. é porque eu eskci de colocar o cifrao! Na verdade é Nome = '$nome'. E voltando ao assunto, então não tem nenhum problema se eu só abrir a primeira query pra pegar o codigo não é?? Lembrando que eu vou fechar ela logo em seguida, é porque eu preciso desse codigo para fazer a validacao segunda query! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 perai vocês não me entenderam 1 não precisa de 2 selectssegundo o assunto é segurança certo?então se você usar sql injection contra seu scrit ele libera o login dai a pessoa entraentenderam agora? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Outubro 31, 2004 Autor Denunciar Share Postado Outubro 31, 2004 Mas é claro que eu preciso de 2 selects! porque eu preciso pegar o codigo para montar a variavel $senha! E como eu vou fazer uma instrucao só se eu ainda não tenho a variavel senha?!o que seria esse mysql injection? Ele tambem não seria possivel só com a validacao com a senha? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 cara sobre os 2 selects não precisa basta ter dominio de sql da pra fazer varias pesquisas na mesma select ou dar um seletc select dentro de um só mas ai só do mysql 4.1 pra cima aceita isso = ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Outubro 31, 2004 Autor Denunciar Share Postado Outubro 31, 2004 ;)Ai...agora você me confundiu todo? Select Select...Posta ai um exemplo vai, eu não tenho muito dominio de sql, foi por isso q eu disse não é?... tambem não precisa humilhar não é?.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 Calma você sabe que não é isso, é que você gosta de segurança e só quiz ajudar e dar dicas não é pra isso que você posta aqui pro pessoal dar dicas etc...achei legal sua atitude igual eu falei com você e não leve a mal só quero ajudar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Outubro 31, 2004 Autor Denunciar Share Postado Outubro 31, 2004 beleza, vlw Mas entom cara, como é q faz varias consultas com uma query só, postai alguma coisa! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Outubro 31, 2004 Denunciar Share Postado Outubro 31, 2004 só uma coisa nesse seu login porque você ta usando desse jeito?e sobre sql injectionhttp://phpbrasil.com/articles/print.php/id/680obs: eu falei pra você tratar os dados pois imagina em vez do cara digitar o nome dele ele digite um comando sql sacou ? isso é sql injectionse ele enviar um caracter # o sql vai ignorar tudo que vier depois disso pois ele vai tratar como se fosse um comentarioprocure por sql injection e php injection Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Novembro 1, 2004 Autor Denunciar Share Postado Novembro 1, 2004 Bom, eu vou explicar, é assim:Lembra aquele post sobre o MD5?então, eu estava montando o script, para descodificar uma senha gerada por uma matriz randomica. Lembra que você falou que não era possivel porque o sistema de validacao ia pro brejo? então..acontece que eu fiz o seguinte:Essa matriz gera valores randomicos, e esses valores randomicos eu concateno e guardo no banco de dados, na coluna Codigo. Mas ai tem um problema e ai entra o q você falou. Se a senha for encriptada por uma matriz randomica, o que vai acontecer? Quando for para fazer o login, ele vai gerar uma matriz randomica tambem! Que é diferente da que foi gerada no momento do cadastro.Conclusao? Erro, o usuario nunca vai conseguir se logar, porque como a matriz é randomica, ela vai gerar um codigo randomico para ser comparado tambem! E é para isso que eu cadastro o codigo tambem. Porque quando o usuario se logar, antes de verificar a senha dele, eu vou transformar o codigo que esta no cadastro dele na senha original, isso vai tornar dificil para um hacker quebrar por exemplo, já que essa senha encriptada TAMBEM vai passar pelo MD5, entendeu?então eu tenho que abrir a selecao sem a senha, para que eu possa pegar o codigo, mas isso não vai fazer o usuario se logar, porque logo em seguida, sera feita uma validacao da senha do usuario. E caso a senha esteja incorreta eu retorno uma frase erro, caso ela esteja correta, ele se loga normalmente.Entendeu agora? uiaa, que discurso! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 1, 2004 Denunciar Share Postado Novembro 1, 2004 Cara... só uma coisaNão tem como fazer uma senha randômica. Tem que ter alguma lógica na criação da senha senão é impossível fazer a verificação depois.A senha pode ter a lógica mais complexa do mundo, mas não pode ser randômica nunca... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Novembro 1, 2004 Autor Denunciar Share Postado Novembro 1, 2004 Hehe, de acordo com o meu script pode, da uma lidinha melhor nele..Qualquer coisa posta ai! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 1, 2004 Denunciar Share Postado Novembro 1, 2004 Não, cara, é um princípio simples.Tem que haver alguma lógica pra que ela possa ser verificada senão como você vai logar o usuário?O usuário joga um dado e vê se logou?Se é aleatório não pode ser checado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Novembro 1, 2004 Denunciar Share Postado Novembro 1, 2004 Cara , imagina só:- O MD5 já não criptografa a senha?Então para que randomizar ?? e outra como o MD5 vai achar a senha depois se voce usar o rand??Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Novembro 1, 2004 Autor Denunciar Share Postado Novembro 1, 2004 Discordo de você Error404, existe um modo de checar sim.Se o usuario se cadastrar com a senha 'abcd' e a matriz randomica gerar o codigo '1234' existe sim um modo de transformar esse '1234' em 'abcd'.Isso só sera possivel se o valor da matriz randomica for gravado no banco de dados para ser utilizado mais tarde, na hora do login? é muito simples? Entende? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Novembro 1, 2004 Denunciar Share Postado Novembro 1, 2004 Cara voce sabe o que é randomico?? e como ele funciona?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Novembro 1, 2004 Denunciar Share Postado Novembro 1, 2004 Se fosse tão simples assim você não estaria aqui no fórum pedindo ajuda pra gente, não acha? A única coisa randômica que você pode ter é um código gerado na criação do usuário que interfere no modo de criptografia da senha.O que só deixaria mais difícil de descobrir a senha por tentativas porque se alguém invade o seu banco de dados (que é o jeito mais provável de ter acesso aos hashes md5 das senhas) vai ter acesso à esse código também, ou seja, não adianta nada.Se você tem alguma idéia iluminada e brilhante para montar um esquema de senhas randômicas, por favor, nos mostre funcionando mas não nos mostre o código por que você vai ficar milionário com ele... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Novembro 1, 2004 Autor Denunciar Share Postado Novembro 1, 2004 Bom taudujas, ehuaheu, hje eu tou discordando de todos os moderadores da scriptbrasil! Seis viram como eu sou teimoso e cabeca dura? então gente, o que eu quero dizer, é que a matriz pode ser randomica sim, ai vocês me perguntam:Então para que randomizar ?? e outra como o MD5 vai achar a senha depois se voce usar o rand??Vamos por partes como diria o jack estripador.. 1) Utilizando um 'substr' na seu pergunta Parte 1:Então para que randomizar ??R: não é o codigo do MD5 que vai ser randomizado, o que vai ser randomizado e encriptado é a senha que o usuario digitou:Imaginem essa maquina:SENHA DIGITADA >>> ENCRIPTAR PELO MEU CODIGO >>> ENCRIPTAR A SENHA ENCRIPTADA PELO MD5. >> INSERIR NO BANCO DE DADOSA senha digitada vai ser gerada por uma matriz randomica, os resultados do RAND() vao ser guardados junto com o Login e a Senha(encriptada pelo MD5) no banco de dados. Assim sera possivel na hora do login, fazer o seguinte:Quando o usuario digitar a senha dele, a senha vai ser encriptada pelo meu codigo(utilizando-se os valores randomicos guardados) e encriptada pelo MD5, só assim eu vou poder compara-la com a senha que esta no BD. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renatodex Postado Novembro 1, 2004 Autor Denunciar Share Postado Novembro 1, 2004 Tudo bem gente, então eu vou fazer o seguinte, vou publicar esse meu codigo na net e passo o end para vocês testarem, tdu bem? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
renatodex
Bom, então!
A minha pergunta é a seguinte.
Tem algum risco se meu script php acessar o banco de dados sem pedir a senha, por exemplo:
O usuario vai e digita os dados:
Login: Cicrano
Senha: 127rg9
Quando ele submeter eu vou gerar a seguinte instrucao sql.
SELECT * FROM tbluser WHERE 1 AND Nome = 'nome'
Ai eu pego as informacoes que eu preciso, saio e faco a consulta do modo correto:
SELECT * FROM tbluser WHERE 1 AND Nome = '$nome' And Senha = '$senha'
Tem algum risco? No meio dessa primeira conexao tem algum risco?
Link para o comentário
Compartilhar em outros sites
37 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.