Sobes.tech
Junior — Middle

Cum se pot preveni vulnerabilitățile legate de injectarea de cod SQL prin parametri în JDBC?

sobes.tech AI

Răspuns de la AI

Pentru a preveni vulnerabilitățile legate de injecția SQL (SQL Injection) prin parametri în JDBC, se utilizează următoarele metode:

  • PreparedStatement — utilizarea interogărilor parametrizate, unde parametrii sunt transmiși separat și nu sunt inserați direct în șirul SQL. Acest lucru previne interpretarea parametrilor ca și cod.

  • Validarea și escaparea datelor de intrare — verificarea și curățarea datelor înainte de utilizare în interogări.

  • Utilizarea ORM — de exemplu, Hibernate, care generează automat interogări sigure.

Exemplu de utilizare a PreparedStatement:

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();

Această abordare elimină posibilitatea injectării de cod SQL malițios prin parametri.