通过加密安全地从PHP连接到MSSQL?

时间:2013-02-19 14:09:02

标签: php sql-server pdo

我需要从PHP连接到MSSQL数据库。但是,当连接远程站点上的服务器时,我要求加密连接。

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

1 个答案:

答案 0 :(得分:3)

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

  1. 选项EncryptTrustServerCertificate通常一起使用。
  2. 默认情况下,SQL Server会安装一个用于加密连接的自签名证书 - 但自签名证书可以接受攻击。因此应该用证书颁发机构(CA)替换它。
  3. 更换证书后,您可以设置Encrypt = trueTrustServerCertificate = falseTrustServerCertificate = true也可以,但您的连接很容易受到攻击)
  4. 文章* 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

相关问题