Junior — Middle
Kaip galima užkirsti kelią saugumo spragoms, susijusioms su SQL kodo įterpimu per parametrus JDBC?
sobes.tech AI
Atsakymas iš AI
Siekiant užkirsti kelią pažeidžiamumams, susijusioms su SQL injekcijomis per parametrus JDBC, naudojami šie metodai:
-
PreparedStatement — naudoti parametrizuotas užklausas, kur parametrus perduoda atskirai ir jie nėra tiesiogiai įterpiami į SQL eilutę. Tai neleidžia parametrų interpretacijai kaip kodo.
-
Įvesties duomenų validavimas ir išvengimas — patikrinimas ir valymas duomenų prieš naudojimą užklausose.
-
ORM naudojimas — pvz., Hibernate, kuris automatiškai generuoja saugias užklausas.
PreparedStatement naudojimo pavyzdys:
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();
Šis požiūris išvengia galimybės įterpti kenksmingą SQL kodą per parametrus.