Junior — Middle
Kā var novērst drošības ievainojamības, kas saistītas ar SQL koda ievadīšanu caur parametrus JDBC?
sobes.tech AI
Atbilde no AI
Lai novērstu ievades ievades ievainojamības, kas saistītas ar SQL injekciju, izmantojot parametrus JDBC, tiek izmantotas šādas metodes:
-
PreparedStatement — izmantot parametrizētus vaicājumus, kuros parametri tiek nodoti atsevišķi un netiek tieši ievadīti SQL virknes iekšpusē. Tas novērš parametru interpretāciju kā koda.
-
Ievades datu validācija un escape — pārbaude un datu attīrīšana pirms to izmantošanas vaicājumos.
-
ORM izmantošana — piemēram, Hibernate, kas automātiski ģenerē drošus vaicājumus.
PreparedStatement piemērs:
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();
Šī pieeja novērš ļaunprātīga SQL koda ievadīšanas iespēju caur parametriem.