Heim  >  Artikel  >  Datenbank  >  So verhindern Sie SQL-Injection in der Web-Sicherheit

So verhindern Sie SQL-Injection in der Web-Sicherheit

little bottle
little bottlenach vorne
2019-04-29 13:27:183213Durchsuche

Bei der SQL-Injection wird ein SQL-Befehl in ein Webformular eingefügt, um einen Domänennamen oder eine Abfragezeichenfolge für eine Seitenanforderung zu übermitteln und letztendlich den Server dazu zu verleiten, böswillige SQL-Befehle auszuführen. Beispielsweise bei vielen früheren Film- und Fernsehwebsites Durchgesickerte VIP-Mitgliedschaftskennwörter werden beim Absenden eines WEB-Formulars offengelegt. Diese Art von Formular ist besonders anfällig für SQL-Injection-Angriffe.

SQL-Injection-Prinzip

Wenn eine Anwendung Eingabeinhalte verwendet, um dynamische SQL-Anweisungen für den Zugriff zu erstellen Datenbank Wenn ein SQL-Injection-Angriff auftritt. Eine SQL-Injection kann auch auftreten, wenn der Code gespeicherte Prozeduren verwendet, die als Zeichenfolgen mit ungefilterten Benutzereingaben übergeben werden.

SQL-Injection kann es einem Angreifer ermöglichen, die Anwendungsanmeldung zu verwenden, um Befehle in der Datenbank auszuführen. Dieses Problem kann schwerwiegend werden, wenn eine Anwendung ein überprivilegiertes Konto verwendet, um eine Verbindung zur Datenbank herzustellen. In einigen Formularen wird der vom Benutzer eingegebene Inhalt direkt zum Erstellen dynamischer SQL-Befehle oder als Eingabeparameter für gespeicherte Prozeduren verwendet. Diese Formulare sind besonders anfällig für SQL-Injection-Angriffe. Beim Schreiben vieler Website-Programme wird die Rechtmäßigkeit der Benutzereingaben nicht beurteilt oder die Variablen im Programm werden nicht ordnungsgemäß behandelt, was zu Sicherheitsrisiken in der Anwendung führt. Auf diese Weise kann der Benutzer einen Datenbankabfragecode übermitteln und einige vertrauliche Informationen erhalten oder den gesamten Server basierend auf den vom Programm zurückgegebenen Ergebnissen steuern, sodass eine SQL-Injection erfolgt.

Wie verhindert man SQL-Injection?

  1. Vertrauen Sie niemals Benutzereingaben. Um die Eingabe des Benutzers zu überprüfen, können Sie reguläre Ausdrücke verwenden oder die Länge begrenzen; dann konvertieren Sie sensible Symbole wie einfache Anführungszeichen und doppelte „-“.
  2. Verwenden Sie keine dynamische Assemblierung von SQL. Sie können parametrisiertes SQL verwenden oder direkt gespeicherte Prozeduren für die Datenabfrage und den Zugriff verwenden.
  3. Verwenden Sie niemals Administrator-Datenbankverbindungen, sondern separate Datenbankverbindungen mit eingeschränkten Berechtigungen für jede Anwendung.
  4. Speichern Sie vertrauliche Informationen nicht direkt, verschlüsseln oder hashen Sie Passwörter und vertrauliche Informationen nicht.
  5. Die Ausnahmeinformationen der Anwendung sollten so wenige Hinweise wie möglich geben. Am besten verwenden Sie benutzerdefinierte Fehlerinformationen, um die ursprünglichen Fehlerinformationen zu umschließen.

Verwandte Tutorials: SQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo verhindern Sie SQL-Injection in der Web-Sicherheit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen