Conexões SSL com ADODB
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?
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.