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

MySQL-Backup-Tabellenvorgang basierend auf Java

Der Kern ist mysqldump und Runtime Der Vorgang is...

webpack -v Fehlerlösung

Hintergrund Ich möchte die Webpack-Version überpr...

So setzen Sie das Root-Passwort in CentOS7 zurück

Beim Verschieben von Bausteinen treten verschiede...

Methode der Toolbibliothek zur Generierung von Vue-Komponentendokumenten

Inhaltsverzeichnis Analysieren von VUE-Dateien Do...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

Einfache Schritte zum Erstellen eines MySQL-Containers mit Docker

Vorwort Wir haben Docker bereits installiert und ...

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11

In diesem Artikel finden Sie das Installations-Tu...

JS realisiert den Front-End-Paging-Effekt

In diesem Artikelbeispiel wird der spezifische JS...

Einigen Eigenschaften in CSS geht ein "*" oder "_" voraus.

Einigen Eigenschaften in CSS geht ein "*&quo...

Einführung in lokale Komponenten in Vue

In Vue können wir lokale Komponenten selbst defin...

Schritte zur Einführung von PWA in ein Vue-Projekt

Inhaltsverzeichnis 1. Abhängigkeiten installieren...