Heim >Java >javaLernprogramm >So verhindern Sie die SQL-Injection in Java

So verhindern Sie die SQL-Injection in Java

青灯夜游
青灯夜游Original
2019-05-06 17:31:144798Durchsuche

SQL-Injection ist eine der häufigsten Methoden für Netzwerkangriffe. Es nutzt keine Fehler im Betriebssystem aus, um Angriffe durchzuführen, sondern zielt auf die Nachlässigkeit von Programmierern bei der Programmierung ab. Skrupellose Benutzer nutzen SQL-Lücken aus und nutzen SQL-Anweisungen, um sich ohne Konto anzumelden oder sogar die Datenbank zu manipulieren. Der folgende Artikel stellt Ihnen verschiedene Methoden zur Verhinderung der SQL-Injection in Java vor. Ich hoffe, dass er für Sie hilfreich ist.

So verhindern Sie die SQL-Injection in Java

Der einfachste Weg, SQL-Injection in Java zu verhindern, besteht darin, SQL-Splicing zu eliminieren. SQL-Injection-Angriffe sind erfolgreich, weil der ursprünglichen SQL-Anweisung neue Logik hinzugefügt wird, anstatt „Statement“ zum Ausführen der SQL-Anweisung zu verwenden und dann nur Parameter eingegeben werden, ist die SQL-Injection-Angriffsmethode wirkungslos.

Sehen wir uns an, wie man SQL-Injection in Java verhindert:

1. Verwenden Sie einen vorkompilierten Anweisungssatz, der über eine integrierte Fähigkeit zur Verarbeitung von SQL-Injection verfügt. Verwenden Sie einfach die setString-Methode, um einen Wert zu übergeben:

String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = preState.executeQuery();

2. Verwenden Sie reguläre Ausdrücke, um Anweisungen mit einfachen Anführungszeichen ('), Semikolons (;) und Kommentarsymbolen (--) zu ersetzen, um eine SQL-Injection zu verhindern. Beispiel:

public static String SQL(String str)
{
return str.replaceAll(".*([';]+|(--)+).*", " ");
}
userName=SQL(userName);
password=SQL(password);
String sql="select * from users where username='"+userName+"' and password='"+password+"' "
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);

Das obige ist der detaillierte Inhalt vonSo verhindern Sie die SQL-Injection in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Was bedeutet Textfeld?Nächster Artikel:Was bedeutet Textfeld?