Sobes.tech
Junior — Middle

Кадом намуди дархостҳоро бехатартар мешуморед ва чаро?

sobes.tech AI

Ҷавоб аз AI

Беҳтарин амниятӣ дархостҳои параметрӣ (prepared) ва пурсишҳои ORM мебошанд, ки автоматӣ маълумоти воридшударо муҳофизат мекунанд.

Зеро онҳо аз вуруди SQL-и зарарнок пешгирӣ мекунанд — вақте ки ҳамлагар кодҳои зарарноки SQL-ро тавассути воридоти корбар ворид мекунад.

Масалан:

  • Дар дархости параметрӣ, параметрҳо алоҳида аз коди SQL дода мешаванд, ки имконияти тағир додани сохтори дархостро маҳдуд мекунад.

  • Баръакс аз пайваст кардани сатрҳо, ки дар он воридоти корбар мустақиман ба дархост дохил мешавад.

Масалан, дар Java бо JDBC:

String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();

Ин усул бехатартар аст аз:

String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);

Аз ин рӯ, барои бехатарӣ дар озмоиш ва таҳия истифодаи дархостҳои параметрӣ тавсия дода мешавад.