المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح عمل جدار نارى على لوحة التحكم


MOHAMED
07-10-2011, 05:43 PM
بسم الله الرحمن الرحيم

اليوم سنشرح كيفية عمل جدار نارى على لوحة تحكم المدير
وهذا الدرس سيكون مفيد للذين يصممون السكربتات للاستضافات المجانية والتى لا يوجد بها جدار حماية
الفكرة فى هذا الدرس جديدة هى المفروض ان المستخدم لو دخل لوحة التحكم مثل
http://vvvv.com/admin/
على سبيل المثال نفترض ان admin هو المجلد الخاص بلوحة التحكم والمفروض ان عند كتابة هذا العنوان اصلاً
الصفحة الافتراضية التى تفتح
هى صفحة index.php صح ! اذا سنضع الجدار النارى فى هذه الصفحة بحيث ان المستخدم عند يكتب الاسم وكلمة المرور ويكونوا صح يتابع المترجم
ترجمة باقى الصفحة ومنها يحول المستخدم لصفحة الدخول
والجدار النارى من مميزاته منع الهكرز من اختراق الموقع والوصول للوحة التحكم
نبدأ على بركة الله الكود الذى سنستخدمه

<?
$admin_cp_username = "admin";
$admin_cp_password = "12345";
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
die;

} else {

if (($_SERVER['PHP_AUTH_USER'] !== $admin_cp_username) || ($_SERVER['PHP_AUTH_PW'] !== $admin_cp_password)) {
header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
die;
}
}
echo "!done";
?>
الكود السابق لفهمه يحتاج لمحترفين سنشرح الاشياء الاساسية فى هذا الكود
اولا هذان السطران بهما اسم المستخدم وكلمة المرور للمدير
$admin_cp_username = "admin";
$admin_cp_password = "12345";
طبعاً انت بتغيرهم كما تريد او بتستوردهم من ملف آخر مثل ملف config.php
لنلاحظ الكود
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
die;

هو اولاً بيتأكد من ان خاصية الجدار النارى متاحة كما نرى فى الكود السابق
والآن لننتقل الى هذا السطر وهو من اهم السطور
if (($_SERVER['PHP_AUTH_USER'] !== $admin_cp_username) || ($_SERVER['PHP_AUTH_PW'] !== $admin_cp_password)) {
وهو فائدته انه اذا لم يكن الاسم المكتوب فى الجدار النارى وكلمة المرور غير صحيحين يعطى هذه النتيجة
die;

وهى مت او توقف عن اكمال ترجمة الصفحة وهنا نلاحظ متغيرين قد تكلما عنهم فى الاول

$admin_cp_username
$admin_cp_password
وهذان المتغيرين لو لاحظنا فى الكود السابق نجد انه فائدته ان يتحقق من ان كلمة المرور واسم المستخدم المدخلان فى لوحة الجدار النارى مساويان لقيمتى
هذا المتغيران اى نفسها واذا لم يكن كذلك فالنتيجة
header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
die;
اى توقف عن باقى الترجمة طيب اذا كان كلمة المرور واسم المستخدم صح يكمل ترجمة باقى الاكواد وهنا الاكواد هى سطر واحد وهو
echo "Done!";


وهذا درسنا لليوم بسيط وسهل ان شاء الله
بالتوفيق للجميع

mr.effect
08-06-2011, 06:29 AM
السلام عليكم

الله ينور عليك ياريس طريقة حلوة فعلا
بس اية رأيك لو تختصر الكود شوية كدا يكون افضل ياعنى علشان اللود بتاع السرفر وكدا
<?
$admin_cp_username = "admin";
$admin_cp_password = "12345";
if (!(isset($_SERVER['PHP_AUTH_USER'])) || ($_SERVER['PHP_AUTH_USER'] !== $admin_cp_username) || ($_SERVER['PHP_AUTH_PW'] !== $admin_cp_password) ) {
header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
die;
}
echo "!done";
?>

لكن الصراحة طريقة جميلة جدا
بارك الله فيك

khaledbelal
08-06-2011, 01:57 PM
ما شاء الله لا قوة الا بالله

عملاقان في موضوع واحد ... الموضوع هينفجر

جزيتم عنا كل خير وحفظكم الرحمن

المشتاقة للجنة
08-09-2011, 02:06 AM
جزاكم الرحمن خيرا ووفقكم لما يحب ويرضى

MOHAMED
08-10-2011, 12:08 AM
اشكركم لمروركم يا كرام وخاصة mr.effect واقتراح جميل بس
دا حسب اختيار الشخص اللى حيضع الجدار النارى لان ده الطريقة الاولى تصعب الامر على المخترق
عموماً اشكرك يا غالى مرة اخرى ونتمنى ان نرى المزيد من التعليقات البناءة والمفيدة وشكراً

أبو ربيع
11-03-2011, 12:08 PM
السلام عليكم ورحمة الله وبركاته..

كيف حال الجميع عساكم طيبين.. ومشكووووورين والله على الإفادة..

سبق وأن قرأت الموضوع وكنت حاب أضيف لكن كنت بمقهى وليس على جهازي..

وبعدها ضيعت الموضوع ما أدري بأي منتدى كان.. والآن الحمد لله لقيته ^_^..

وحاب أضيف بعد إذنكم لكي تعم الفائدة..

في الحقيقة لو وضعنا الجدار الناري بالصورة السابقة فسيتم تجاوزه بسهوله..

وأي نوع من أنواع الثغرات كفاية لكسره.. حتى الثغرات البسيطة كثغرات الـ LFI..

مجرد نظرة للكود عن طريق أي ثغرة ستنهي الجدار الناري..

ولكن ما رأيكم أن نحوله إلى جدار ناري قوي وذلك بتشفير بيانات اليوزر والباس.. بأي دالة تشفير..

كالـ MD5 أو الـ DES مثلاً..

هذا الكود بعد الشفير..

<?php
$admin_username = "21232f297a57a5a743894a0e4a801fc3";
$admin_password = "21232f297a57a5a743894a0e4a801fc3";
if (!(isset($_SERVER['PHP_AUTH_USER'])) || (md5($_SERVER['PHP_AUTH_USER']) != $admin_username) || (md5($_SERVER

['PHP_AUTH_PW']) != $admin_password) ) {
header('WWW-Authenticate: Basic realm=""');
die;
}
echo "!done";
?>


بهذه الصورة أصبحت بيانات اليوزر والباس مشفرة..

ولن يعرفها المخترق.. حتى ولو تمكن من رؤية الكود عبر أي ثغرة.. وسيكون الأمر عليه صعباً..

وخصوصاً لو كانت شفرة اليوزر تختلف عن شفرة الباس..

وطبعاً ستحتاج إلى برنامج لتشفير البيانات.. والبرامج كثيرة في النت..

وتجد واحد منها رفعته لك في المرفقات..

شغل الجدار الناري واكتب في خانة اليوزر والباس كلمة admin..

وستجد أنه يشتغل بصورة طبيعية.. وبكذا الحماية ستكون قوية وخصوصاً عند التشفير بالـ MD5..

طبعاً هذا المجال واسع والكلام يطول فيه..

ولكن كانت هذه فكرة للتوضيح فقط..

khaledbelal
11-03-2011, 12:11 PM
ما شاء الله ... جزاك الله خيرا يا حبيب
واهلا بك مرة اخرى بيننا

أبو ربيع
11-03-2011, 12:15 PM
بالنسبة للمرفقات كل ما حاولت أرفع برنامج التشفير..

تظهر لي رسالة إدارية.. بأنه غير مسموح لي برفع ملف مرفق..

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

أبو ربيع
11-03-2011, 12:18 PM
ما شاء الله ... جزاك الله خيرا يا حبيب
واهلا بك مرة اخرى بيننا

أهلاً بالأستاذ خالد بلال..

تشرفت جداً بمرورك وترحيبك..

مشكوووووووووور ولا هنت يالغالي..