كثير من المواقع المطورة بلغة PHP يتم اختراقها بسهولة وذلك لكثرة المبتدئين الذين يطوروا مواقع الويب بلغة PHP وذلك لسهولتها وامكانية تطوير موقع بتعلم الاساسيات بدون التعرف على الأساليب والطرق البرمجية الصحيحة لبناء موقع ويب خالي من الثغرات .
ومع التطور التقني في شتى المجالات وخصوصا في مجال الهاكر والقرصنة انتشرت كثير من البرمجيات المجانية والتي مكنت الكثير من الهاويين استخدامها في اختراق المواقع لأجل المتعة والتباهي ، وبذلك صار لابد من بناء طرق حديثة وقوية لتطوير مواقع خالية من الثغرات.
سيتم في هذا المقال دراسة الثغرات الامنية والحد من انتشارها وتواجدها في المواقع الصغيرة والكبيرة ، واستخدام شتى المعارف والطرق الحديثة والمتطورة في تأمين وحماية المواقع المطورة بلغة PHP، وبناء مواقع قوية خالية من الثغرات.
مجموعة من الثغرات الامنية في مواقع الويب وكيفية الحد من انتشارها
الحد من ثغرات الــ xss
وذلك بالتحقق من المدخلات او فلترتها في جهة المستخدم عن طريق الجافا سكريبت او مكتبة الجي كويري ايضا توجد العديد من الإضافات الجاهزة التي يمكن استخدامها بسهولة ،
ايضا تعتبر جهة الخادم هي المكان الأساسي للتنفيذ لهذا يجب عليك استخدام دوال الفلترة والتحقق التي توفرها لغة PHP .
الحد من ثغرات حقن البيانات SQL Injection
وذلك باستخدام الكلاس PDO للتعامل مع قواعد البيانات وذلك بالطريقة المثلى و المعيارية للتعامل مع قواعد البيانات والتي تمر بالمراحل التالية الاتصال والاعداد واضافة البارامترات واخيرا اضافة البيانات والتنفيذ ، وبهذه الطريقة يتم الحد من ثغرة حقن البيانات والتحقق من الاكواد المضمنة بشكل آلي.
الحد من ثغرات File Remote Inclusion في لغة PHP
وذلك عن طريق اضافة مصفوفة تحتوي على الصفحات المسموح بها عمل تضمين داخل السكريبت وتعمل تحقق من وجود هذه الصفحة في المصفوة فبل تضمينها او استدعائها من خلال الدالة include(); ،الطريقة الثانية وهي ايقاف عملية استدعاء ملفات خارجية داخل اكواد الــ php وذلك بتحويل قيمة المتغير allow_url في ملف php.ini على السيرفر الى OFF ، وبهذا سيتم منع تنفيذ كود التضمين بشكل نهائي .
تشفير كلمات السر في قاعدة البيانات
يجب تشفير كلمة السر باستخدام احدى خوارزميات الهاش مثل md5 او sha2 وافضل استخدام sha2 لأنها تعتبر اخر اصدار من خوارزميات الهاش ، والتشفير بالهاش يتم من جهة واحدة فقط تشفير ولا يمكن ارجاعها لأصلها.
ولكن يجب ايضا استخدام كلمة سر معقدة ، تحتوي على الرموز والأرقام والحروف الكبيرة والصغيرة ، لأنه هناك بعض الأدوات تقوم باستعادة كلمة المرور الأصلية اذا كانت كلمة السر سهلة ومعتادة ، ففي لغة الـ PHP نستخدم الدالة:
:ايضا استخدم الدالة التالية للمقارنة بين الهاش وكلمة السر الأصلية للتحقق من ذلك
password_hash($password,$hash algorithm);
password_verify($password , $hash);
يجب كتابة الدلة exit(); بعد استخدام دالة التوجيه header();
لأنه في حال عدم استخدامها يعمل على طباعة جميع التعليقات المضافة بعدها.
تعطيل امكانية تنفيذ الملفات على السيرفر التي يرفعها المستخدم
وذلك عن طريق ملف الـ .htaccess ويتم ذلك من خلال الكود التالي:
<filesMatch "\.{php|rb|py|inc|txt}$">
Order allow, deny
Deny from all
</filesMatch>
تعطيل خاصية عرض الاخطاء من السيرفر
لانها تمكن الهاكر من استنتاج اكوادك البرمجية وقواعد البيانات من تحليل الأخطاء وذلك من خلال جعل قيمة عرض الأخطاء تساوي صفر كالتالي:
او عن طريقة تغييره من ملف اعدادات php باسم php.ini كالتالي:
error_reporting(0);
او عن طريقة تغييره من ملف اعدادات php باسم php.ini كالتالي:
display_errors : Off
منع المستخدم من دخول المجلدات الفرعية للموقع التي تستخدم لتخزين الصور والملفات بشكل مباشر
وذلك عن طريق اضافة الكود التالي في ملف htaccess :
IndexIgnore *
- استخدام استضافة قوية وذات امنية عالية.
- استخدام بروتوكول HTTPS.
- حذف الملفات الهامشية وملفات التثبيت من المشروع.
- تحديث اصدار PHP لآخر اصدار.
دور استخدام اطار عمل في PHP لتطوير تطبيقات الويب في امن وحماية الموقع.
يعتبر استخدام اطار عمل php framework من اكثر الادوات التي توفر عليك الكثير من الاكواد البرمجية التي يجب ان تستخدمها في الفلتره والحد من ثغرات الحقن Sql Injection و file Remote Inclusion وغيرها الكثير من الكلاسات الجاهزة لتوفير الحماية والتشفير.
ومن اهم اطارات العمل والاكثر شهرة ودعما في يومنا هذه اطار العمل لارافيل PHP Laravel Framework ، لهذا تعتبر من اسهل الطرق لبناء مواقع بلغة PHP ذات امنية وحماية عالية.
كانت هذه مقاله جديده للمهتمين بتطوير مواقع php خالية من الثغرات ... واذا كانت لديكم اضافات اخرى اتركوها في التعليقات لتعم الفائدة للجميع ... تابعونا على مواقع التواصل الاجتماعي للمزيد من المقالات .... دمتم في رعاية الله وحفظة.