مخاطر REGISTER_GLOBALS
REGISTER_GLOBALS هو إعداد PHP يمكّن جميع متغيرات GET وPOST من أن تكون متاحة كمتغيرات عامة داخل نصوص PHP النصية. قد تبدو هذه الوظيفة مريحة، ولكن لا يُنصح باستخدامها بشدة بسبب الثغرات الأمنية المحتملة وممارسات الترميز.لماذا يعد REGISTER_GLOBALS سيئًا؟
تكمن المشكلة الأساسية في REGISTER_GLOBALS في إمكانية استغلالها. عندما يتم الوصول عن غير قصد إلى متغيرات GET أو POST كمتغيرات غير معلنة (وهو أمر مسموح به في PHP)، فقد يؤدي ذلك إلى تنفيذ تعليمات برمجية ضارة. وهذا أمر مثير للقلق بشكل خاص نظرًا لأن PHP يُستخدم بشكل شائع لتطوير الويب، حيث يمكن أن تكون مدخلات المستخدم غير موثوقة.
مثال على الضعف
خذ بعين الاعتبار كود PHP التالي:
if ($debug) {
echo "query: $query\n";
}
مع تمكين REGISTER_GLOBALS، يمكن للمهاجم بسهولة إدخال متغير $query من خلال طلب لمعالجة سلوك البرنامج النصي. قد يؤدي ذلك إلى الكشف عن معلومات حساسة، أو الوصول غير المصرح به إلى الملفات، أو حتى تنفيذ التعليمات البرمجية عن بعد.
أفضل ممارسات الترميز
من المهم ملاحظة أنه يجب تصميم كود PHP. لتجنب الوصول إلى المتغيرات غير المعلنة. ستعلن التعليمات البرمجية المكتوبة جيدًا وتهيئ جميع المتغيرات بشكل صحيح ويجب ألا تعتمد على REGISTER_GLOBALS للراحة.بينما يمكن استخدام REGISTER_GLOBALS للبرامج النصية السريعة والقذرة، يجب تجنبه بشكل عام في تعليمات الإنتاج البرمجية. من خلال تعطيل REGISTER_GLOBALS واعتماد ممارسات الترميز النظيفة، يمكن للمطورين تحسين أمان وموثوقية تطبيقات PHP الخاصة بهم بشكل كبير.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3