共用方式為


安全性考量

本主題描述開發、部署與執行使用 SQL Server Driver for PHP 之應用程式的安全性考量。如需有關 SQL Server 安全性的詳細資訊,請參閱 SQL Server 2005 安全性 (英文) 或 SQL Server 2008 安全性 (英文)。

使用 Windows 驗證來連接

每當下列其中一個可能原因成立時,都應該使用 Windows 驗證來連接 SQL Server:

  • 驗證期間不會透過網路傳送任何認證。 使用者名稱和密碼不會內嵌在資料庫連接字串中。這表示,惡意使用者或攻擊者將無法藉由監視網路或檢視組態檔內的連接字串來取得認證。
  • 使用者受限於集中式帳戶管理。 將會強制使用安全性原則 (如密碼過期期限、最小密碼長度以及多次無效登入要求之後的帳戶鎖定)。

如需有關如何使用 Windows 驗證連接至伺服器的詳細資訊,請參閱<如何:使用 Windows 驗證進行連接>。

當您使用 Windows 驗證連線時,建議您設定環境以便 SQL Server 可以使用 Kerberos 驗證通訊協定。如需詳細資訊,請參閱<如何在您建立遠端連接至 SQL Server 2005 執行個體時,確認您使用的是 Kerberos 驗證>或<Kerberos 驗證與 SQL Server>(英文)。

傳送機密資料時使用加密連接

從 SQL Server 傳送或擷取機密資料時,都應該使用加密連接。如需有關如何啟用加密連接的詳細資訊,請參閱<如何:啟用 Database Engine 的加密連接 (SQL Server 組態管理員)>。若要建立與 SQL Server Driver for PHP 的安全連接,請在連接至伺服器時使用 Encrypt 連接屬性。如需有關連接屬性的詳細資訊,請參閱<sqlsrv_connect>。

使用參數型查詢

使用參數型查詢以減少 SQL 資料隱碼攻擊。如需執行參數化查詢的範例,請參閱<如何:執行參數化查詢>、<如何:執行單一查詢>和<如何:多次執行查詢>。

如需有關 SQL 資料隱碼攻擊和相關安全性考量的詳細資訊,請參閱<SQL 資料隱碼>。

不接受使用者提交的伺服器或連接字串資訊

撰寫應用程式以便讓使用者無法提交伺服器或連接字串資訊至應用程式。對伺服器與連接字串資訊嚴密維護,以減少惡意活動出現的機率。

在應用程式開發期間開啟 WarningsAsErrors

在開發應用程式時將 WarningsAsErrors 設定設為 true,如此驅動程式所發出的警告將被視為錯誤。這樣就可以在部署應用程式之前處理警告。如需詳細資訊,請參閱<處理錯誤和警告>。

確保已部署應用程式的記錄檔安全無虞

對於已部署的應用程式,確定記錄檔已寫入安全的位置或已關閉記錄功能。如此有助於防止使用者存取已寫入記錄檔的資訊。如需詳細資訊,請參閱<記錄活動>。

另請參閱

其他資源

程式設計指南
設計考量