Sobes.tech
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 كودىنى كىرگۈزۈش ئىمканچىلىقىنى يوقاتىدۇ.