Sicherheitsüberlegungen für die Microsoft-Treiber für PHP für SQL Server
Dieses Thema beschreibt Sicherheitsüberlegungen speziell für die Entwicklung, die Bereitstellung und den Betrieb von Anwendungen, die Microsoft-Treiber für PHP für SQL Serververwenden. Ausführlichere Informationen zum Thema „SQL Server-Sicherheit“ finden Sie unter Übersicht über die SQL Server-Sicherheit.
Herstellen einer Verbindung mithilfe der Windows-Authentifizierung
Aus folgenden Gründen sollte, wann immer möglich, die Windows-Authentifizierung für die Verbindung zu SQL Server verwendet werden:
Während der Authentifizierung werden keine Anmeldeinformationen über das Netzwerk übergeben. Benutzernamen und Kennwörter werden nicht in die Verbindungszeichenfolge der Datenbank eingebettet. Deshalb können böswillige Benutzer oder Angreifer die Anmeldeinformationen nicht durch Überwachen des Netzwerks oder durch Einsehen der Verbindungszeichenfolgen in Konfigurationsdateien abrufen.
Die Benutzer werden über eine zentralisierte Kontoverwaltung verwaltet Sicherheitsrichtlinien, wie z. B. Gültigkeitszeiträume für Passwörter, Vorgaben zur Mindestlänge von Passwörtern und die Sperrung von Konten nach mehreren ungültigen Anmeldeanfragen werden umgesetzt.
Informationen zum Herstellen einer Verbindung mit einem Server mithilfe der Windows-Authentifizierung finden Sie unter Vorgehensweise: Herstellen einer Verbindung mithilfe der Windows-Authentifizierung.
Wenn Sie eine Verbindung mithilfe der Windows-Authentifizierung herstellen, sollten Sie Ihre Umgebung so konfigurieren, dass SQL Server das Kerberos-Authentifizierungsprotokoll verwenden kann. Weitere Informationen finden Sie unter How to make sure that you are using Kerberos authentication when you create a remote connection to an instance of SQL Server 2005 (So stellen Sie sicher, dass Sie Kerberos-Authentifizierung verwenden, wenn Sie eine Remoteverbindung mit einer Instanz von SQL Server 2005 erstellen) oder unter Kerberos-Authentifizierung und SQL Server.
Verwenden Sie verschlüsselte Verbindungen, wenn Sie sensible Daten übertragen.
Sie sollten immer verschlüsselte Verbindungen verwenden, wenn der SQL Server sensible Daten empfangen/senden soll. Informationen zum Aktivieren verschlüsselter Verbindungen finden Sie unter How to Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager) (Aktivieren von verschlüsselten Verbindungen für die Datenbank-Engine (SQL Server-Konfigurations-Manager)). Zum Herstellen einer sicheren Verbindung mit dem Microsoft-Treiber für PHP für SQL Server, verwenden Sie das Attribut „Encrypt connection“ beim Verbinden mit dem Server. Weitere Informationen zu Verbindungsattributen finden Sie unter Connection Options.
Verwenden parametrisierter Abfragen
Verwenden Sie parametrisierte Abfragen, um das Risiko von Angriffen durch Einschleusung von SQL-Befehlen zu senken. Beispiele für die Ausführung parametrisierter Abfragen finden Sie unter How to: Perform Parameterized Queries.
Weitere Informationen zu Angriffen durch Einschleusung von SQL-Befehlen und Sicherheitsüberlegungen dazu finden Sie unter Einschleusen von SQL-Befehlen.
Akzeptieren Sie KEINE Server- oder Verbindungszeichenfolgeinformationen von Endbenutzern.
Schreiben Sie Anwendungen so, dass Endbenutzer keine Server- oder Verbindungszeichenfolgeinformationen an die Anwendungen übermitteln können. Sie können die Angriffsfläche für böswillige Aktivitäten reduzieren, indem Sie strikte Kontrolle über die Server- und Verbindungszeichenfolgeinformationen behalten.
Aktivieren von „WarningsAsErrors“ während der Anwendungsentwicklung
Legen Sie während der Anwendungsentwicklung für den Schalter „ WarningsAsErrors “ den Wert true fest, damit vom Treiber ausgegebenen Warnungen wie Fehler behandelt werden. Dadurch können Sie Warnungen angehen, bevor Sie Ihre Anwendung bereitstellen. Weitere Informationen finden Sie unter Handling Errors and Warnings.
Sichere Protokolle für bereitgestellte Anwendungen
Stellen Sie sicher, dass die Protokolle bereitgestellter Anwendungen an einem sicheren Ort gespeichert werden, oder dass die Protokollierung deaktiviert ist. Dies schützt gegen mögliche Zugriffe von Endbenutzern auf Informationen, die in die Protokolldateien geschrieben wurden. Weitere Informationen finden Sie unter Logging Activity.
Weitere Informationen
Programmierhandbuch für die Microsoft-Treiber für PHP für SQL Server