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);
Հետևաբար, անվտանգության համար, թեստավորման և զարգացման ժամանակ, խորհուրդ է տրվում օգտագործել պարամետրավորված հարցումներ: