3

我需要从 PHP 连接到 MSSQL 数据库。但是,由于连接了远程站点上的服务器,我需要对连接进行加密。

是否可以仅使用 PHP 的 mssql 扩展或 PDO 来加密与 MSSQL 服务器的连接?

4

1 回答 1

3

在实现与 MSSQL 的安全(加密)连接时,有 3 件事很重要:

  1. 这些选项EncryptTrustServerCertificate经常一起使用。
  2. 默认情况下,SQL 服务器会安装一个自签名证书,用于加密连接 - 然而,自签名证书容易受到攻击。因此,它应该替换为来自证书颁发机构 (CA) 的证书。
  3. 替换您的证书后,您然后设置Encrypt = trueand TrustServerCertificate = false(TrustServerCertificate = 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

于 2013-02-19T14:17:44.897 回答