كيف تحمي موقعك من الإختراق ؟

10486472_790336731011496_2945914499491267565_n
كلنا نعرف ان المواقع الإلكترونية معرضة دائما للاختراق والوصول الى بيانات من المفترض ان لا يراها الا المسموح لهم.
القاعدة الاساسية لحماية موقعك عليك ان تملك تفكير امني (ما اقصده بتفكير امني اي لديك نفس طريقة التفكير التي يتمتع بها خبراء الاختراق )

مع كتابتك لكل سطر برمجي عليك ان تكون متفهم لما تكتب وهل ما تكتبه يمكن استغلاله وماهي الطرق التي يتم استغلاله بها وتقوم بمنعها
ابرز مناطق الخطر في السكربتات

1- المدخلات المتنوعه للبحث او لتسجيل الدخول او غيرها

2- عرض البيانات (العرض له اهميه كبيره مثل الادخال يجب ان تعرض البيانات بحيث اذا كان بها كود لايتفاعل مع المتصفح مثل اكواد html & js وطبعا هنا ايضا دور مهم للمدخلات )

3- لاتعتمد على لغة جافا سكربت في فلترة المدخلات فهي غير كافية ويمكن ابطال مفعولها من المتصفح وتجاوزها

4- رفع الملفات واحده من اكثر الاسباب خطوره في اختراق الموقع وحمايتها لا تعتمد على طريقة واحده وانما على عدة طرق وعلى حسب الاحتياجات وكل مبرمج وابداعه في الحماية

5- الكوكيز بعض المبرمجين يقوم بأستخدامها دون عمل اي تشفير لها او حماية ويظن انه لا احد ينتبه لها وهذا امر خطير ان تتركها بدون تشفير او حماية

6- لاتسمح بظهور الاخطاء بعض المبرمجين يسمحون بظهور اخطاء البرمجة على الموقع في حالة حدوثها وهذا امر خطير وعليك ايقاف اظهار الاخطاء والاكتفاء بملف error_log لدراسة الاخطاء

7- حدد كمية معينه من البيانات التي تستقبلها في حالة كان سيرفرك مفتوح ولايقدم لك حماية

هناك انواع من الهجمات تستهدف المدخلات التي لاتحدد اكبر كمية من البيانات

في لغات البرمجة تاتي الاعدادات افتراضية لتمنع مثل هكذا هجمات لكن عليك في البرمجة ان تحدد كل مدخل وكم يسمح من حروف او ارقام او بيانات ولايستقبل اكثر من هذا الحد

8- اهتم بحماية السيرفر حيث حماية السيرفر تشكل نسبة كبيرة من حماية موقعك

9- البيانات المهمة مثل الباسوردات لاتقم بوضعها بدون تشفير واستخدم خوارزميات من نوع One-Way مثل MD5 & SHA1

10- لاتستخدم اضافات او دوال او كلاسات برمجية دون ان تتحقق من سلامتها اول باول

11- اطلع دائما على الاخبار وجديد الحماية والاختراق لكي تكون لديك دراية باخر مستجدات هذا العالم

12- دائما راقب سلوك موقعك او السكربت واقرء ملفاته لكي تعلم كيف يتعامل ويتجاوب مع الزوار ومحاولات الاختراق واكتشف نقاط الضعف وقم بحمايتها.

كما أن صلاحيات السكربت على قاعدة البيانات يجب أن لاتكون مفتوحة وكاملة، ويجب أن يوجد أكثر من حساب تستخدمه للتواصل مع قاعدة البيانات ، مثلاً صفحة البحث في موقع يجب أن تستخدم صلاحيات القراءة وتنفيذ ( Select) فقط، هكذا قد تستطيع الحد تعرض قاعدة البيانات للتعديل مثلاً.

بالطبع هذا الأمر لايحميك من الهجوم لأنه بالإمكان تنفيذ هجمة سرقة بيانات على قاعدة البيانات لذلك عليك عمل طرق فلترة للإستعلامات التي تنفذ عن طريق الموقع والنصوص التي ترسل عن طرق مربعات النصوص.
وكمان لاننسى إستخدام WAF

(Web Application Firewall) بسيط قد يحميك من الإختراق بنسبه كبيره حتى ولو كان هنالك ثغرة في تطبيقك

.ممكن تبدا بالتعلم من المحتوى الاجنبي لكن تاكد انه التجارب بتعلمك الكثير عن حماية الكود ..

في النهاية هذه النقاط ليست كثيرة والامر يعتمد على خبرة المبرمج وابتكاراته في الحماية

عن نفسي انا في بعض البرمجيات لا اقوم بفلترة المدخلات نهائيا بل اقوم بتشفيرها وحفظها وقوم بفك التشفير واتعامل معها عند العرض والمعالجة لكن لهذه الميزة سلبيات وايجابيات ولاتنفعك دائما لكن ذكرتها من باب الاضافة.