Heim > Datenbank > SQL > Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können

Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können

coldplay.xixi
Freigeben: 2021-01-28 18:17:45
nach vorne
3347 Leute haben es durchsucht

Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können

Empfohlen (kostenlos): SQL-Tutorial

SQL-Injection bedeutet, dass die Webanwendung die Rechtmäßigkeit der Benutzereingabedaten nicht beurteilt oder diese nicht streng filtert. Der Angreifer kann sie im Voraus im Web definieren Anwendung Fügen Sie am Ende der Abfrageanweisung zusätzliche SQL-Anweisungen hinzu, um illegale Vorgänge ohne Wissen des Administrators durchzuführen, wodurch der Datenbankserver dazu verleitet wird, nicht autorisierte beliebige Abfragen auszuführen und so weitere entsprechende Dateninformationen zu erhalten.

1. SQL-Injection-Fall

Simuliert einen SQL-Injection-Fall der Benutzeranmeldung. Der Benutzer gibt den Benutzernamen und das Kennwort auf der Konsole ein und verwendet dann die Verkettung von Anweisungszeichenfolgen, um die Benutzeranmeldung zu realisieren.

1.1 Erstellen Sie zunächst die Benutzertabelle und die Daten in der Datenbank. Es wird die Meldung „Anmeldung erfolgreich“ angezeigt. „

Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können1.4 Anmeldung fehlgeschlagen.“ 1.5 Simulieren Sie die SQL-Injection

Gespleißte Zeichenfolge Es gibt oder '1' = '1' in der konstanten Einrichtungsbedingung, sodass alle Datensätze abgerufen werden, auch wenn der vorherige Benutzer und das vorherige Kennwort nicht vorhanden sind, sodass die Eingabeaufforderung „Anmelden“ angezeigt wird erfolgreich"

1.6 SQL-Syntaxfehler

Verwendung Die Spleißmethode verursacht auch SQL-Syntaxfehler und andere Fehler, wie z. B. Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können

2. Lösung

Mit der Statement-Methode können Benutzer Ändern Sie die wahre Bedeutung des ursprünglichen SQL durch String-Splicing, was zu einem SQL-Injection-Risiko führt. Um die SQL-Injection zu lösen, können Sie zur Verarbeitung das Vorverarbeitungsobjekt PreparedStatement anstelle von Statement verwenden. 1.1 Ein neues Programm schreiben , bitte erneut eingeben“Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können

2.4 SQL-Injection simulieren

Entsprechend der vorherigen Situation wird die SQL-Injection nicht mehr ausgeführt. Erfahren Sie mehr über SQL-Injection und wie Sie es beheben können

2.5 SQL-Syntaxfehler simulieren

Nach Verwendung der Vorverarbeitungsklasse führt die Eingabe von Inhalten mit einfachen oder doppelten Anführungszeichen nicht mehr zu SQL-SyntaxfehlernErfahren Sie mehr über SQL-Injection und wie Sie es beheben können

3. Zusammenfassung

Der Hauptunterschied zwischen

Statement und PreparedStatement lauten wie folgt:

Statement wird zur Ausführung statischer SQL-Anweisungen verwendet.

PrepareStatement ist ein vorkompiliertes SQL-Anweisungsobjekt Parameter „?“ und kann Parameterwerte für „?“ während der Ausführung dynamisch festlegenErfahren Sie mehr über SQL-Injection und wie Sie es beheben können

PrepareStatement kann die Anzahl der Kompilierungen reduzieren und die Datenbankleistung verbessern

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über SQL-Injection und wie Sie es beheben können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage