Dieser Artikel untersucht hauptsächlich eine relativ häufige Frage in Java -Interviewfragen und Fragen der Beurteilung und Verhinderung der SQL -Injektion. Die Details sind wie folgt.
Die SQL -Injektion ist derzeit die am häufigsten verwendete Angriffsmethode für Hacker. Sein Prinzip besteht darin, die Datenbank zu verwenden, um spezielle Kennungen zu analysieren, um sie gewaltsam vom Seite an den Hintergrund zu übergeben. Ändern Sie die SQL-Anweisungsstruktur, erwerben Sie erweiterte Berechtigungen, erstellen Sie Benutzer auf hoher Ebene, ändern Sie die Benutzerinformationen und andere Vorgänge zwangsweise.
Durch das Prinzip der SQL -Injektion wissen wir, dass die Beurteilung der Daten, dass die SQL -Injektion durch die Seite weitergegeben werden kann, nicht an Daten glauben sollte, die aus dem Hintergrund übergeben wurden, insbesondere Special Integer -Parameter und spezielle Charakterparameter!
1. Überprüfen Sie den variablen Datentyp und das Format
Solange es sich um eine Variable in einem festen Format handelt, sollte sie vor der Ausführung der SQL -Anweisung im festen Format streng überprüft werden, um sicherzustellen, dass die Variable das erwartete Format ist!
2. Filter Sondersymbole
Für Variablen, die in einem festen Format nicht bestimmt werden können, müssen spezielle Symbole verwendet werden, um sie zu verarbeiten oder zu übertragen. Es gibt Unklarheiten in SQL.
Wenn wir Bilder hochladen
engType =/”MultiPart/Form-Data/” engType = ”Multipart/Form-Data”
Ohne "/" bedeutet das Form, in der Form die MIME-Codierung des Formulars festzulegen. Standardmäßig ist dieses Codierungsformat die Anwendung/x-www-form-urlencoded, die nicht für das Datei-Upload verwendet werden kann. Nur durch Verwendung von Mehrfach-/Formdaten können die Dateidaten vollständig übergeben und die folgenden Vorgänge ausgeführt werden.
3. Binden Sie Variablen und verwenden Sie vorkompilierte Aussagen
In der Tat ist die Verwendung von vorkompilierten Aussagen zur Bindung von Variablen der beste Weg, um die SQL -Injektion zu verhindern, und die Semantik der Verwendung vorkompilierter SQL -Anweisungen ändert sich nicht. Verwenden Sie in SQL -Anweisungen ein Fragezeichen für Variablen? Es bedeutet, dass er, egal wie fähig ein Hacker ist, das Format von SQL -Aussagen nicht ändern und das Auftreten von SQL -Injektionsangriffen grundlegend verhindert.
4. Datenbankinformationen Verschlüsselungssicherheit
Manchmal, wenn die Datenbankinformationen durchgesickert sind, sollten wir das Datenbankkennwort und andere Informationen (MD5 usw.) verschlüsseln, damit die Informationen durchgesickert sind und die Verluste in einem bestimmten Bereich gesteuert werden können.
1. Öffnen Sie keine Produktionsumgebung, um die Fehleranzeige von Webserver zusammenzufassen.
2. Glauben Sie niemals an variable Eingaben von der Benutzerseite. Variablen mit festen Formaten müssen streng überprüft werden. Variablen ohne feste Formate müssen die erforderlichen Filter- und Flucht -Sonderzeichen wie Zitate durchführen.
3.. Verwenden Sie vorkompilierte SQL -Anweisungen, die Variablen binden
V.
5. Strictly verschlüsseln und verarbeiten Benutzer vertrauliche Informationen
Ein gutes Programm muss auf die Sicherheit achten, sonst ist es nur zum Üben geeignet.
Der oben genannte ist der gesamte Inhalt dieses Artikels zur Analyse von Java -Interviewfragen und zur Verhinderung der SQL -Injektion. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!