Ir para conteúdo
Fórum Script Brasil
  • 0

Segurana Diiiiinovvvvuuuuuu


renatodex

Pergunta

Bom, então! biggrin.gif

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

Posts Recomendados

  • 0

seu script esta sem segurança nenhuma

basta um sql injection e qualquer um entra la sem saber sua senha

e outra dica sempre abra a conexao só na hora que for realmente usar

e fechar assim que usar nunca abra no começo da pagina e fecha no final dela

outra dica não verifique os dados cru direto pra tabela passe ele por parametros primeiro

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 codigo

3) Fecho a query.

4) Abro a query correta pedindo a senha e o login

5) Se o usuario digitar ambas corretamente eu permito on login, caso contrario não.

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

só uma coisa nesse seu login porque você ta usando desse jeito?

e sobre sql injection

http://phpbrasil.com/articles/print.php/id/680

obs: 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 injection

se ele enviar um caracter # o sql vai ignorar tudo que vier depois disso pois ele vai tratar como se fosse um comentario

procure por sql injection e php injection

Link para o comentário
Compartilhar em outros sites

  • 0

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? biggrin.gif uiaa, que discurso!

Link para o comentário
Compartilhar em outros sites

  • 0

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? tongue.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Se fosse tão simples assim você não estaria aqui no fórum pedindo ajuda pra gente, não acha? rolleyes.gif

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...wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Bom taudujas, ehuaheu, hje eu tou discordando de todos os moderadores da scriptbrasil! Seis viram como eu sou teimoso e cabeca dura? laugh.gif

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.. cool.gif

1) Utilizando um 'substr' na seu pergunta biggrin.gif

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 DADOS

A 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. smile.gif

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...