"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تحمي المعدات المعدلة من حقن SQL؟

كيف تحمي المعدات المعدلة من حقن SQL؟

نشر في 2025-03-23
تصفح:157

How Do PreparedStatements Protect Against SQL Injection?

عبارات معدّة: دفاع قوي ضد حقن SQL

يظل حقن SQL بمثابة ثغرة أمنية حاسمة ، مما يسمح للمهاجمين بمعالجة استعلامات قاعدة البيانات لأغراض ضارة. توفر البيانات المعدة حلاً قويًا ، مما يمنع هذا النوع من الهجوم بشكل فعال. ولكن كيف يعملون؟

البيانات المعدة تستخدم الاستعلامات المعلمة. بدلاً من تضمين إدخال المستخدم مباشرة في سلسلة SQL ، يتم إنشاء استعلام قالب مع أصحاب نائبة (مثل "؟"). ثم يتم توفير القيم الفعلية بشكل منفصل باستخدام طرق مثل

setString () ، setInt () ، إلخ.

هذا يتناقض بشكل حاد مع إدخال المستخدم بشكل مباشر في سلسلة SQL (على سبيل المثال ،

"إدراج في قيم المستخدمين ('" اسم المستخدم "')" ). في هذا النهج غير الآمن ، يصبح الكود الخبيث الذي حقنه المستخدم جزءًا من الاستعلام الذي تم تنفيذه. على سبيل المثال ، يمكن للمستخدم إدخال '؛ إسقاط مستخدمي الجدول ؛ -' يؤدي إلى حذف الجدول.

تصريحات معدّة تخفف من هذا المخاطر بواسطة

تفصل بشكل صارم لاستعلام SQL من البيانات المرفقة من المستخدم . يتم التعامل مع العناصر النائبة كبيانات ، وليس كرمز SQL القابل للتنفيذ. يعالج محرك قاعدة البيانات قيم المعلمة بشكل مستقل ، ويمنع تفسير أي رمز ضار كجزء من أمر SQL.

مثال توضيحي:

قارن هذين قصاصات الكود:

// Vulnerable to SQL injection
Statement stmt = conn.createStatement("INSERT INTO users VALUES('"   username   "')");
stmt.execute();
// Secure using PreparedStatement
PreparedStatement stmt = conn.prepareStatement("INSERT INTO users VALUES(?)");
stmt.setString(1, username);
stmt.execute();
المثال الأول عرضة لحقن SQL. والثاني ، باستخدام attatement المعدة ، يفصل ببنية الاستعلام بأمان عن اسم المستخدم

للمستخدم ، مما يجعل حقن SQL غير فعال.

باختصار ، تكمن القوة الأساسية في المعدات المعدة في قدرتها على عزل مدخلات المستخدم من استعلام SQL ، مما يوفر دفاعًا قويًا وموثوقًا ضد حقن SQL وحماية قاعدة بيانات.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3