2013-02-19 61 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