مدونة سلام

أمن المواقع 1

19 - 02 - 2008

تعتمد المواقع الديناميكية على تصرفات الزوار بشكل أساسي في ديناميكيتها ، فإرسال نموذج أو طلب صفحة بواسطة get يلعب الدور الأساسي في محتوى صفحة المعالجة على سبيل المثال طلب صفحة بواسطة الـ get على سبيل المثال لتكن view.php?pid=5 نلاحظ من هذا العنوان أن الصفحة view.php تستخدم القيمة المسندة للبارامتر pid لتعرض محتويات معينة بناءا على قيمته.
لا يمكن الثقة بزوار مواقعك البعض لديهم هواية اكتشاف ثغرات المواقع و البعض يهوى تخريب أي موقع بغض النظر عن محتواه لإظهار سأحاول في هذا الموضوع القصير أن أشير إلى بعض الاحتياطات الواجب اتخاذها لأمن المواقع بما يندرج تحت اسم input validation.
باختصار شديد للفكرة كلها ، يجب عليك أن تراقب أي شيء يرسله زائر سواء عبر post أو get أو cookie أو ...
مشكلة تفعيل الـ register_globals
في بعض نسخ PHP ستجد أن register_globals=on و هذا يعني أن أي بارامتر مرسل يمكن الوصول إليه كمتحول في الصفحة بنفس الاسم، مثلا في المثال السابق سيمكنك أن تصل لقيمة pid بكتابة $pid ، ما المشكلة هنا ؟ المشكلة أن $pid تشير إلى القيمة المسندة لـpid مرسل بواسطة get أو post أو cookie أو غير ذلك. طيب ، وما المشكلة أيضا أكرر التساؤل ؟! لنأخذا المثال التالي فهو يوضح الفكرة
if (isAdmin()){
   $viewOpts = true;
}
على فرض أن التابع isAdmin يختبر كون الزائر الحالي هو مدير اعتادا على قراءة ملف cookie و لنفرض أنه أعاد قيمة false ماذا سيحدث ؟ حاليا لا شيء فقد اختبر كون المتصفح الحالي مدير و فشل ، لكن ماذا يحدث لو مررنا القيمة viewOpts=true عبر الـURL ( كأسلوب GET ) - أفترض هنا أن register_globals=on افترض أنك فهمت ما أرمي إليه.
لحل هذه النقطة و باختصار، استخدم $_POST و $_GET و $_COOKIE و $_ENV و $_SERVER للوصول إلى متحولات كل منهم.
أكمل الموضوع بموضوع لاحق حول اختبار كل نوع و حلول مقترحة .

Security . PHP | قراءات (288) . تعليقات (0) . إضافة تعليق
                   



إضافة تعليق

لإضافة تعليق اكتب ناتج الجمع و اضغط موافق 2 + 1    



التعليقات لا تنشر مباشرة ، أقوم بقراءتها قبل نشرها.