Was ist eine SQL-Injection Attack / Sicherheitslücke?

Diese FAQ Antwort wurde von k4thryn:

Eine SQL-Injection-Schwachstelle kann auftreten, wenn ein schlecht geschriebenes Programm verwendet, die User-Daten in einer Datenbank-Abfrage, ohne zunächst die Validierung der Eingabe. Dies ist sehr oft innerhalb von Webseiten mit dynamischen Inhalten. Es gibt einige ausgezeichnete Tutorials und beschreibende Texte zu diesem Thema, ebenso wie viele Buchungen Anfälligkeit für verschiedene Anwendungen von der vollständigen Offenlegung Websites.

Ein einfaches Beispiel für SQL-Injection ist ein HTML-Formular anmelden, in dem Sie einen Benutzernamen und ein Passwort:


	  <form method="post" action="process_login.php"> 
	  <input type="text" name="username"> 
	  <input type="password" name="password"> 
	  </ form> 

Angesichts dieser HTML, kann man ableiten, dass die einfachste (und schlechteste) Weg für das Skript "process_login.php" zu arbeiten wäre für sie zu bauen und zu führen, dass eine Datenbank-Abfrage sieht wie folgt aus:

	  "SELECT id 
	  AUS Logins 
	  WHERE username = '$ username' 
	  und password = '$ password' "; 

Unter diesen Umständen, wenn die Variablen "$ username" und "$ password" werden direkt aus der Eingabe des Anwenders, werden die Login-Skript kann leicht täuschen in der Annahme, dass ein gültiges Passwort wurde durch das Spielen mit der Syntax der SQL-Anweisung. Nehmen Sie den folgenden String wurden als Passwort:

	  'Oder''=' 

und wir haben "bob", wie der Benutzername. Sobald die Variablen werden durch Interpolation, die Abfrage oben sieht dann so aus:

	  "SELECT id 
	  AUS Logins 
	  WHERE username = 'Bob' 
	  und password =''oder''='' "; 

Diese Abfrage gibt eine Zeile, weil die letzte Klausel:

	  ...  =''oder'' 

wird immer auf "true" zu bewerten (ein leerer String ist immer gleich eine leere Zeichenfolge).

Prävention von SQL-Injection-Attacken

Die am häufigsten verwendeten Methoden zur Verhinderung dieser Art von SQL-Injection vunerability sind, um die Benutzer-Input für gefährliche Zeichen wie Single-Quotes und mit Prepared Statements, die sagen, die Datenbank genau das, was zu erwarten, noch bevor ein Benutzer-Daten, die an sie.

SQL Server-Sicherheit Mastering SQL Server 2000 Security SQL Server Security Destilliertes Oracle Security Handbook: Umsetzung eines Plans zur Gefahrenabwehr für Sound in Ihre Oracle-Umgebung
Kauf dieser ausgezeichneten Bücher über SQL-Sicherheit bei Amazon.com


Top 5 Free Networking Tools

Vulnerability Management für Dummies

Unsere Freunde von Qualys bietet kostenlose Kopien der elektronischen Version der Vulnerability Management für Dummies zu Tech-FAQ Leser.

Vulnerability Management für Dummies:

  • Erklärt, die kritische Notwendigkeit für Schwachstellen-Management
  • Details der grundlegenden Best-Practice-Schritte für eine erfolgreiche Schwachstellen-Management-Programm
  • Gibt einen Überblick über die verschiedenen Schwachstellen-Management-Lösungen - einschließlich der Vor-und Nachteile der einzelnen
  • Highlights der preisgekrönten QualysGuard Schwachstellen-Management-Lösung
  • Bietet eine Zehn-Punkte-Checkliste für die Beseitigung von Schwachstellen aus Ihrer wichtigsten Ressourcen
Bookmark Was ist ein SQL-Injection Attack / Sicherheitslücke?

Neueste Blog-Posts


Englisch Englisch Deutsch Deutsch Spanisch Spanisch Französisch Französisch Italienisch Italienisch Portugiesisch Portugiesisch Russisch Russisch Niederländisch Niederländisch
Griechisch Griechisch Hindi Hindi Japanisch Japanisch Koreanisch Koreanisch Chinesisch Chinesisch Chinesisch (Taiwan) Chinesisch (Taiwan) Arabisch Arabisch

Copyright 2009 Tech-FAQ. Alle Rechte vorbehalten. Datenschutz.