شرح صفوف ومحتوى الفقرة
لفهم آلية عمل الحماية الهندسية، دعنا نشرح بالتفصيل الدقيق كيف يحوّل النص الخبيث ' OR 1=1 -- شجرة التحليل النحوي (Syntax Tree) داخل محرك الاستعلام:
- 1. الإغلاق المبكر للنص (
'): تقوم علامة التنصيص الأولى التي يدخلها المهاجم بإغلاق علامة التنصيص التي فتحها المبرمج فيWHERE email = '. - 2. زرع شرط صائب دائماً (
OR 1=1): بما أن المعادلة1=1نتيجتهاTRUEدائماً، يصبح شرطWHEREمحققاً لكل صف في الجدول. - 3. تعطيل بقية الاستعلام بالتعليق (
--أو#): في MySQL، يحوّل الرمز--(شرطتان متبوعتان بمسافة) أو الرمز#كل ما يأتي بعده في نفس السطر (مثل شرط التحقق من كلمة المرور أو حالة الحساب) إلى تعليق مهمل! - 4. تسريب جداول أخرى عبر
UNION SELECT: إذا كان الموقع يعرض نتائج البحث، قد يحقن المهاجمUNION SELECTلدمج بيانات من جداول حساسة أخرى وعرضها على الشاشة.
SQL
-- Observe how Boolean logic evaluates inside the WHERE filter:
SELECT
('' = '' AND 'a' = 'b') AS normal_failed_login,
('' = '' OR 1 = 1) AS injected_always_true;
-- Everything after '-- ' on the same line is ignored by the SQL parser:
SELECT 'admin_session_granted' AS status WHERE '' = '' OR 1 = 1 -- AND is_active = 0;