2013-02-19 62 views
3

我需要连接到PHP的MSSQL数据库。但是,作为远程​​站点上的服务器已连接,我需要加密连接。通过加密安全地从PHP连接到MSSQL?

是否可以使用加密连接到MSSQL服务器只使用mssql扩展为PHP或PDO?

+0

您可以随时隧道通过加密的航线未加密的连接 - 一个方法可以说两者之间的网络后,凡看见服务器。 – halfer 2013-02-19 14:31:01

回答

3

有三件事情实现安全(加密)连接到MSSQL时很重要:

  1. 选项EncryptTrustServerCertificate经常一起使用。
  2. 默认情况下,SQL Server会安装一个自签名证书,用于加密连接 - 但自签名证书可能面临攻击。所以它应该由证书颁发机构(CA)中的一个替换。
  3. 更换您的证书后,再设置Encrypt = trueTrustServerCertificate = falseTrustServerCertificate = true也将工作,但那么你的连接将很容易受到攻击)

从文章* 1码,例如:

$serverName = "serverName"; 
$connectionInfo = array("Database"=>"DbName", 
         "UID"=>"UserName", 
         "PWD"=>"Password", 
         "Encrypt"=>true, 
         "TrustServerCertificate"=>false); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

如果您使用PDO创建一个对象并传递相关的参数。 如需更详细的解释,请参阅下面的文章:

* 1 - http://blogs.msdn.com/b/brian_swan/archive/2011/03/08/sql-server-driver-for-php-connection-options-encrypt.aspx

+0

请[仅限链接回答](http://meta.stackoverflow.com/tags/link-only-answers/info) – Quentin 2013-02-19 14:19:52

+0

感谢提醒昆汀!我更新了我的答案。 – 2013-02-19 15:23:32

+0

这是否在Linux上工作? – Erik 2013-02-19 15:26:17