Sobes.tech
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.