Array
(
)

Proteger senha do banco

PHP
Felipern
|
MVP
    03 out 2012

Sou iniciante em PHP.
E no PHP tem uma coisa que me incomoda e preocupa que é como proteger as senhas de acesso ao banco de dados.
Trabalhamos com uma classe de conexão e dentro dessa classe temos os dados necessários pra conexão com o banco
#Código

<?php

class Conexao extends PDO {
   private $dsn = "firebird:dbname=10.0.0.1:Banco";
   private $user = 'SYSDBA';
   private $password = "123";
   public  $handle = null;

   function __construct() {
      try {
	if ( $this->handle == null ) {
	   $dbh = parent::__construct( $this->dsn , $this->user , $this->password );
	   $this->handle = $dbh;
	   return $this->handle;
	}
      }
      catch ( PDOException $e ) {
	echo 'Connection failed: ' . $e->getMessage( );
	return false;
      }
   }
   
   function __destruct( ) {
      $this->handle = NULL;
   }
}

Qual seria a melhor e mais confiável forma de estar protegendo esses dados de acesso ?

Bruno Betioli
   - 03 out 2012

Eu nunca precisei usar isso ainda, por isso não posso ajudar mais do que lhe passar este link.

http://www.linhadecodigo.com.br/artigo/1749/tutorial-criptografando-senhas-em-php.aspx

Diga-nos se lhe ajudou e se possível mostre o resultado para dividirmos conhecimento

Abraços

Eduardo Oliveira
   - 15 out 2012

Pra esses casos no script não sei se irá funcionar você criptografa-los, pois pense em como seu banco de dados vai validar essa sua senha caso você faça isso no seu script? Utilizando o link passado acima, você também colocaria a senha de maneira explicita, pois essa senha só seria criptografada quando a função fosse executada ou seja passar a senha assim no seu script :

$senha = md5('123');

ou assim

$senha = 123;

Visualmente, é o mesmo pois seus dados continuam expostos, porém da primeira forma ao executar ele converteria para md5 o conteudo passado.

Se não quer deixar a senha exposta de maneira explicita no seu script, ao criar sua base de dados, no momento que for pedido a senha criptografe-a, existem diversos serviços na net que convertem uma string para md5, base_encode, entre outras, escolha uma e utilize-a tanto na criação de seu banco, como no seu script. Eu recomendaria md5 por ser de mão unica, se utilizar base64_encode pode-se saber o seu valor usando base64_decode. Espero ter sido claro.

Abraço

Alisson
|
MVP
Pontos: 3400
    15 out 2012

Sem duvida o uso de criptografia.
Mas utilizar uma cryptografia md5 sha1 e quando criar a senha colocar pelomenos um caracter especial para dar certo.
Caso não faça isso não resolverá.