Jump to content


Photo

Segurança No Desenvolvimento Em Php


  • Faça o login para participar
11 replies to this topic

#1 Bruno-RO_RJ

Bruno-RO_RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Rio das Ostras RJ
  • Interesses:Aprender

Posted 18/05/2007, 16:53

Oi pessoal, qual é o melhor jeito de tratar autenticação de usuário utilizando php? Tenho que implementar um projeto mais ainda estou com duvidas. Dá uma forçinha ai. vlw... Obrigado.

#2 Guilherme Luiz

Guilherme Luiz

    Normal

  • Usuários
  • 78 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 18/05/2007, 19:41

olha o bom e velho modo é o md5 !!

pois quando a senha do usuario por exemplo é 1234 no seu bd vai estar assim au2344oisociiDoioa (tipo isso)

lembrando tambem que tente evitar de passar informações importantes por sessions sempre manter codificado campos importantes no bd e por ai vai...
mas procure aqui no forum algo por md5 ou hash que você concerteza encontrará respostas !!

ou melhor ainda... pesquise o manual
http://www.php.net/manual
just its a lie when the truth is found !

#3 JoinTek

JoinTek

    24 Horas

  • Usuários
  • 454 posts
  • Sexo:Masculino
  • Localidade:Santarém, PA

Posted 18/05/2007, 22:32

Só tem um problema, né?
O md5 não tem volta, ou seja, uma vez encriptado, fica encriptado pra sempre, até que os aliens invadam a terra, roubem nossas informações e aí sim descubram uma volta pro Md5...

Então, se você for fazer um sistema de login, por exemplo, vai ficar difícil do usuário recuperar a senha se peder.
(Me corrijam se eu estiver errado)
[]'s

#4 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 19/05/2007, 00:23

Só tem um problema, né?
O md5 não tem volta, ou seja, uma vez encriptado, fica encriptado pra sempre, até que os aliens invadam a terra, roubem nossas informações e aí sim descubram uma volta pro Md5...

Então, se você for fazer um sistema de login, por exemplo, vai ficar difícil do usuário recuperar a senha se peder.
(Me corrijam se eu estiver errado)
[]'s


Sim, por isso que normalmente nos botões Esqueceu sua senha? de sites com login, é gerada uma nova senha, e a senha anterior não é recuperada.

Não entendi o que o colega quis dizer com evitar armazenar valores importantes em SESSIONS, elas são armazenadas no servidor, então são muito mais seguras, que os cookies por exemplo.

#5 jfsso

jfsso

    12 Horas

  • Usuários
  • 145 posts
  • Sexo:Não informado
  • Localidade:Tsukuba
  • Interesses:JAVA - PHP - RUBY - PERL - PYTHON - MYSQL

Posted 21/05/2007, 04:31

se alguem pegar o sessid ja era... :-)

ja vi site q usa sessid + user_agent + ip pra verificar se e' mesmo o usuario...
João

#6 Bruno-RO_RJ

Bruno-RO_RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Rio das Ostras RJ
  • Interesses:Aprender

Posted 21/05/2007, 13:40

Valeu pelas dicas pessoal

#7 xKuRt

xKuRt

    Turista

  • Usuários
  • 48 posts
  • Sexo:Masculino

Posted 21/05/2007, 13:51

Segurança é algo que deve ser sempre pensado e re-pensado quando se desevolve um sistema, seja em PHP ou em outras linguagens.

Algumas outras dicas de como programar com segurança no PHP:

http://www.htmlstaff...ver.php?id=1356
http://www.htmlstaff...ver.php?id=1357
http://www.htmlstaff...ver.php?id=2831
http://www.htmlstaff...ver.php?id=6569

#8 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 21/05/2007, 14:59

Sessões armazenadas no servidor ?!

This is either stored in a cookie on the user side or is propagated in the URL.



Sobre segurança, não costumo usar MD5 para sistemas pequenos. No máximo um addslashes e olhe lá... ^^

Na verdade faço os seguintes procedimentos.

Checo se está habilitado no servidor a opção magic_quotes:
(!get_magic_quotes_gpc()) ? :;

Se estiver habilitada eu retiro o que ela aplicou na função com o stripslashes direto nas super globais:
foreach($_GET as $k => $v){
#...
}
#...

Só atente para o fato de que um dos elementos pode ser um vetor, então uma verificação (is_array) e um array_map podem ser necessários em alguns casos.

Depois eu aplico as funções que considero necessárias a cada tipo de dado, por exemplo, removo caracteres que considero dispensáveis, palavras, faço as verificações de rotina (campo preenchido corretamente, etc), só depois eu aplico novamente o addslashes e mysql_real_escape_string() -- mysql_escape_string no php < 4.3 -- para já se adequar ao charset atual.

As vezes eu só verifico o tipo de dado necessário ao consultar o BD:
$query = sprintf("SELECT user FROM `tabela` WHERE `user`=%s",verifica_dado($_POST['user'],'string_s'));

No caso o $_POST['user'] tem que ser uma string simples, senão ele passa a ter o valor NULL.

É por aí, cada um faz de um jeito. Mas só uso o MD5 como citado se for muito necessária a confidencialidade dos dados.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#9 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 21/05/2007, 17:36

Não entendi muito sobre não ter volta que vocês disseram.
Mas acho que tem sim...

Exemplo:
http://www.md5decrypter.com/
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#10 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 21/05/2007, 17:49

Esse link postado não faz o inverso do MD5 ... ele tem salvo no BD mais de meio milhão de registros e tenta achar o que você colocou .... por exemplo, se eu for lá e digitar bimonti, ele faz be1b4298a9605dc87cdc31e8c33602ab, e ao mesmo tempo aumenta 1 no total de registros no banco ... ae no decrypter se eu colocar be1b4298a9605dc87cdc31e8c33602ab e já tem cadastrado esse hash como bimonti ...
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#11 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 21/05/2007, 17:51

Esse link postado não faz o inverso do MD5 ... ele tem salvo no BD mais de meio milhão de registros e tenta achar o que você colocou .... por exemplo, se eu for lá e digitar bimonti, ele faz be1b4298a9605dc87cdc31e8c33602ab, e ao mesmo tempo aumenta 1 no total de registros no banco ... ae no decrypter se eu colocar be1b4298a9605dc87cdc31e8c33602ab e já tem cadastrado esse hash como bimonti ...


Hmm legal heim, só que também já é uma coisa boa xD.
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#12 Bruno-RO_RJ

Bruno-RO_RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Rio das Ostras RJ
  • Interesses:Aprender

Posted 22/05/2007, 09:03

E quanto ao password do mysql é seguro utiliza-lo?? sei que estou fazendo muitas perguntas mais é que não tenho muita esperiência se tratando de segurança vlw.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq