Sobes.tech
Junior — Middle

Որ տեսակի հարցումները եք համարում առավել անվտանգ և ինչու՞։

sobes.tech AI

Պատասխան AI-ից

Ամենաբացթողն են պարամետրավորված (prepared) հարցումները և ORM հարցումները, որոնք ավտոմատ կերպով.escape են անում մուտքային տվյալները:

Սա կանխում է SQL ինյեկցիաները — երբ հարձակումողը մուտք է գործում վնասակար SQL կոդ օգտագործողի մուտքից:

Օրինակ՝

  • Պարամետրավորված հարցումում, պարամետրերը փոխանցվում են առանձին SQL կոդից, ինչը բացառում է հարցման կառուցվածքի փոփոխությունը:

  • Վերած string-ների միացման, որտեղ օգտագործողի մուտքը անմիջապես մտնում է հարցման մեջ:

Օրինակ՝ 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);

Հետևաբար, անվտանգության համար, թեստավորման և զարգացման ժամանակ, խորհուրդ է տրվում օգտագործել պարամետրավորված հարցումներ: