Il y a 3 choses qui sont importantes lors de la mise en œuvre d'une connexion sécurisée (cryptée) à MSSQL:
- Les choix
Encrypt
et TrustServerCertificate
sont souvent utilisés ensemble.
- Par défaut, le serveur SQL installe un certificat auto-signé qu'il utilisera pour crypter les connexions. Les certificats auto-signés sont toutefois ouverts aux attaques. Donc, il devrait être remplacé par un d'une autorité de certification (CA).
- Après le remplacement de votre certificat, vous définissez ensuite
Encrypt = true
et TrustServerCertificate = false
(TrustServerCertificate = true
travaillera également, mais votre connexion sera alors vulnérable aux attaques)
code-exemple de l'article * 1:
$serverName = "serverName";
$connectionInfo = array("Database"=>"DbName",
"UID"=>"UserName",
"PWD"=>"Password",
"Encrypt"=>true,
"TrustServerCertificate"=>false);
$conn = sqlsrv_connect($serverName, $connectionInfo);
Si vous utilisez PDO, créez un objet et transmettez les paramètres pertinents. Pour une explication plus détaillée s'il vous plaît consultez l'article suivant:
* 1-http://blogs.msdn.com/b/brian_swan/archive/2011/03/08/sql-server-driver-for-php-connection-options-encrypt.aspx
Vous pouvez toujours tunnel une connexion non chiffrée par une voie cryptée - une approche peut-être de parler à quiconque regarde après votre réseau entre les deux les serveurs. – halfer