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

Eine kurze Diskussion über 12 klassische Probleme in Angular

Inhaltsverzeichnis 1. Erklären Sie bitte, was die...

Schritte zur VSCode-Konfiguration mit der Git-Methode

Git ist in vscode integriert und viele Vorgänge k...

Erstellen Sie einen hochverfügbaren MySQL-Cluster mit Dual-VIP

Inhaltsverzeichnis 1. Projektbeschreibung: 2. Pro...

Lösung für den Überlauf der HTML-Tabelle

Wenn die Tabelle breit ist, kann es zu einem Über...

Detaillierte Analyse der HTML-Semantik und der zugehörigen Front-End-Frameworks

Über Semantik Die Semantik ist die Lehre von der ...

Auswahl der Groß-/Kleinschreibung von MySQL-Tabellennamen

Inhaltsverzeichnis 1. Parameter, die die Groß-/Kl...

Detaillierte Erläuterung des Lese-Commits der MySQL-Transaktionsisolationsebene

MySQL-Transaktionsisolationsebene anzeigen mysql&...

CentOS 7.x-Bereitstellung von Master- und Slave-DNS-Servern

1. Vorbereitung Beispiel: Zwei Maschinen: 192.168...

4 Möglichkeiten, sich schnell Linux-Befehle selbst beizubringen

Wenn Sie ein Linux-Meister werden möchten, ist di...

Ubuntu MySQL-Version auf 5.7 aktualisiert

Vor einigen Tagen teilte die Bibliothek mit, dass...

Womit kann ich dich, meinen Tisch, retten (Haiyu-Blog)

Tabellen spielten einst eine sehr wichtige Rolle ...

Versionsnummern in CSS- und JS-Links in HTML (Cache aktualisieren)

Hintergrund Suchen Sie in der Suchmaschine nach d...