Junior — Middle
როგორ შეიძლება თავიდან ავიცილოთ JDBC-ში SQL კოდის ინექციის დაკავშირებული სუსტი წერტილები?
sobes.tech AI
პასუხი AI-სგან
JDBC ئارқىلىق پارامېترلارنى ئىشلىتىپ SQL Injection (SQL ئىنتېكشېن) زەخىمەتلىرىدىن قوغداش ئۈچۈن، تۆۋەندىكى ئۇسۇللار قوللىنىلىدۇ:
-
PreparedStatement — پارامېترلۇق سوراقلارنى ئىشلىتىش، بۇ يەردە پارامېترلار ئايرىم بېرىلىپ، بىۋاسىتە SQL سىزىقىغا قوشۇلمايدۇ. بۇ پارامېترلارنى كود سۈپىتىدە چۈشەنۈشنىڭ ئالدىنى ئالىدۇ.
-
كىرگۈزۈش ئۇچۇرلىرىنى تەكشۈرۈش ۋە escape قىلىش — سانجىلىش ۋە تازلاش، سوراقلاردا ئىشلىتىشتىن بۇرۇن.
-
ORM ئىشلىتىش — مەسىلەن، Hibernate، ئۇلار ئاپتوماتىك بىخەتەر سوراقلارنى ياراتىدۇ.
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();
بۇ ئۇسۇل پارامېترلار ئارقىلىق زىيانلىق SQL كودىنى كىرگۈزۈش ئىمканچىلىقىنى يوقاتىدۇ.