Ein genauerer Blick auf SQL-Injection

Ein genauerer Blick auf SQL-Injection

1. Was ist SQL-Injection?

SQL-Injection ist eine Angriffsmethode, bei der dem Eingabeparameter SQL-Code hinzugefügt und zur Analyse und Ausführung an den SQL-Server übergeben wird.

2. Wie kam es dazu?

Webentwickler können nicht garantieren, dass alle Eingaben bereinigt werden

Der Angreifer erstellt ausführbaren SQL-Code unter Verwendung der an den SQL-Server gesendeten Eingabedaten

Die Datenbank ist nicht für die Sicherheit konfiguriert

3. Wie findet man SQL-Schwachstellen?

Identifizieren aller Eingabepunkte in einer Webanwendung

Verstehen, welche Arten von Anfragen Ausnahmen auslösen? (Sonderzeichen " oder ')

Erkennen von Anomalien in Serverantworten

4. Wie führt man einen SQL-Injection-Angriff durch?

Digitale Injektion:

Wählen Sie * aus Tabellennamen, wobei ID=1 oder 1=1 ist;

String-Injektion:

MySQLs Kommentarfunktion:

Die Zeichen nach # und -- sind auskommentiert, so dass jedes eingegebene Passwort korrekt abgefragt werden kann. Klicken Sie hier, um die Bildbeschreibung einzugeben

5. Wie kann SQL-Injection verhindert werden?

Überprüfen Sie das Eingabeformat genau: is_numeric (var), validieren Sie die Überprüfung mit tp5 und überprüfen Sie mit regulären Ausdrücken, ob die Zeichenfolge zwischen [A-Za-z] liegt.

Escape: addslashes(str),

mysqli_escape_string() Funktion zum Escapen

6.MySQLis Vorkompilierungsmechanismus

Parametrisierte Bindung

Die parametrisierte Bindung ist eine weitere Barriere zur Verhinderung von SQL-Injection. PHP MySQLi und PDO bieten beide eine solche Funktionalität. MySQLi kann beispielsweise wie folgt abfragen:

Noch komfortabler ist PDO, zum Beispiel:

Das könnte Sie auch interessieren:
  • Analyse der Java-Interviewfragen: Beurteilung und Verhinderung von SQL-Injection
  • Prinzipien der SQL-Injection und Lösungscodebeispiele
  • Lösen Sie SQL-Injection-Probleme mit ibatis
  • Anti-SQL-Injection-Artefakt für den Win2003-Server – D-Shield_IIS-Firewall
  • SQL-Injection-Tool_PowerNode Java Academy
  • Einführung in das Prinzip der SQL-Injection_PowerNode Java Academy
  • So finden Sie Websites mit SQL-Injection (unbedingt lesen)
  • Teilen Sie eine einfache SQL-Injection
  • Mybatis – Beispiel zur Verhinderung von SQL-Injection
  • Mehrere Lösungen zum Verhindern von SQL-Injection bei Verwendung von Hibernate
  • Zusammenfassung von 5 effektiven Möglichkeiten zur Verhinderung von SQL-Injection
  • Zusammenfassung der Methoden zum Lesen und Schreiben von Dateien bei SQL-Injection

<<:  So generieren Sie ein kostenloses Zertifikat mit OpenSSL

>>:  So schreiben Sie speichereffiziente Anwendungen mit Node.js

Artikel empfehlen

Beispiele für optimistisches und pessimistisches Sperren in MySQL

Die Aufgabe der Parallelitätskontrolle in einem D...

So führen Sie eine reibungslose if-Beurteilung in js durch

Inhaltsverzeichnis Vorwort Code-Implementierung I...

js realisiert bidirektionale Datenbindung (Accessor-Überwachung)

In diesem Artikelbeispiel wird der spezifische Co...

So implementieren Sie eine steuerbare gepunktete Linie mit CSS

Vorwort Die Verwendung von CSS zum Generieren gep...

JavaScript-Grundlagenvariablen

Inhaltsverzeichnis 1. Variablenübersicht 1.1 Spei...

HTML-Tutorial, HTML-Standardstil

html , Adresse , Blockzitat , Text , dd , div , d...

So deinstallieren und installieren Sie Tomcat neu (mit Bildern und Text)

Deinstallieren Sie tomcat9 1. Da die Installation...

Analyse der Benutzererfahrung beim Design von Facebook-Dating-Websites

<br />Verwandter Artikel: Analyse der Inform...

Karusselleffekte mit JavaScript implementieren

In diesem Artikel wird der spezifische Code für J...