Pergunta

Eu tenho um projeto que está prestes a terminar, mas só tenho um pedido do DBA para fazer todas as nossas conexões SSL. Então eu troquei o motorista para mysqli no objeto que acaba casos ADODB, mas eu não vejo nenhum método nativo para criar conexões seguras.

Para tornar as coisas mais difíceis, há um conjunto diferente de certificados e chaves por tipo de conexão (ler e escrever).

Alguém tem alguma idéia?

Foi útil?

Solução

O truque é usar um DSN na NewADOConnection () chamada (em vez de autenticação com uma chamada Connect ()) e usar o driver mysqli. o DSN sintaxe permite que você forneça cliente bandeiras, e há uma bandeira mysqli para usando certificados SSL.

$dsn = 'mysqli://ssluser:sslpass@dbhost/test?clientflags=2048';

$dbh = NewADOConnection($dsn);

$sql = "show status like 'ssl_cipher'";
$res =& $dbh->Execute($sql);
print_r( $res->fields );
$res->Close();
$dbh->Close();

A resposta a esta pergunta é encontrada em:

http://mbrisby.blogspot.com/2008 /06/adodb-php-mysql-ssl.html

Aqui é a referência para Flags MySQL cliente:

http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol

Outras dicas

Eu prefiro aquele com o método Connect, e clientFlags propriedade.

$dbc = NewADOConnection('mysqli');
$dbc->clientFlags = CLIENT_SSL;
$this->dbc->Connect('dbhost', 'ssluser', 'sslpass', 'test');

Qualquer um deles iria funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top