Junior — Middle
Hogyan lehet megelőzni az SQL-kód injekcióval kapcsolatos sebezhetőségeket JDBC-ben?
sobes.tech MI
Válasz az MI-től
Az SQL Injection sebezhetőség megelőzése érdekében JDBC-ben a következő módszereket alkalmazzák:
-
PreparedStatement — paraméterezett lekérdezések használata, ahol a paramétereket külön adjuk át, és nem közvetlenül az SQL szövegbe illesztjük be. Ez megakadályozza, hogy a paramétereket kódnak értelmezze.
-
Bemeneti adatok validálása és escape-elése — az adatok ellenőrzése és tisztítása a lekérdezések előtt.
-
ORM használata — például Hibernate, amely automatikusan biztonságos lekérdezéseket generál.
Példa PreparedStatement használatára:
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
Ez a megközelítés kiküszöböli a rosszindulatú SQL-kód beszúrásának lehetőségét a paramétereken keresztül.