منتدى رياض الجنة - Riad Al-Ganah

منتدى رياض الجنة - Riad Al-Ganah (https://montada.khaledbelal.com/index.php)
-   روضة البرمجة بلغة الـ PHP (https://montada.khaledbelal.com/forumdisplay.php?f=94)
-   -   شرح عمل جدار نارى على لوحة التحكم (https://montada.khaledbelal.com/showthread.php?t=4597)

MOHAMED 07-10-2011 05:43 PM

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

اليوم سنشرح كيفية عمل جدار نارى على لوحة تحكم المدير
وهذا الدرس سيكون مفيد للذين يصممون السكربتات للاستضافات المجانية والتى لا يوجد بها جدار حماية
الفكرة فى هذا الدرس جديدة هى المفروض ان المستخدم لو دخل لوحة التحكم مثل
http://vvvv.com/admin/
على سبيل المثال نفترض ان admin هو المجلد الخاص بلوحة التحكم والمفروض ان عند كتابة هذا العنوان اصلاً
الصفحة الافتراضية التى تفتح
هى صفحة index.php صح ! اذا سنضع الجدار النارى فى هذه الصفحة بحيث ان المستخدم عند يكتب الاسم وكلمة المرور ويكونوا صح يتابع المترجم
ترجمة باقى الصفحة ومنها يحول المستخدم لصفحة الدخول
والجدار النارى من مميزاته منع الهكرز من اختراق الموقع والوصول للوحة التحكم
نبدأ على بركة الله الكود الذى سنستخدمه
كود 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";
?>

الكود السابق لفهمه يحتاج لمحترفين سنشرح الاشياء الاساسية فى هذا الكود
اولا هذان السطران بهما اسم المستخدم وكلمة المرور للمدير
كود PHP:

$admin_cp_username "admin";
$admin_cp_password "12345"

طبعاً انت بتغيرهم كما تريد او بتستوردهم من ملف آخر مثل ملف config.php
لنلاحظ الكود
كود PHP:

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

هو اولاً بيتأكد من ان خاصية الجدار النارى متاحة كما نرى فى الكود السابق
والآن لننتقل الى هذا السطر وهو من اهم السطور
كود PHP:

if (($_SERVER['PHP_AUTH_USER'] !== $admin_cp_username) || ($_SERVER['PHP_AUTH_PW'] !== $admin_cp_password)) { 

وهو فائدته انه اذا لم يكن الاسم المكتوب فى الجدار النارى وكلمة المرور غير صحيحين يعطى هذه النتيجة
كود PHP:

die; 

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

$admin_cp_username
$admin_cp_password 

وهذان المتغيرين لو لاحظنا فى الكود السابق نجد انه فائدته ان يتحقق من ان كلمة المرور واسم المستخدم المدخلان فى لوحة الجدار النارى مساويان لقيمتى
هذا المتغيران اى نفسها واذا لم يكن كذلك فالنتيجة
كود PHP:

header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
die; 

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

echo "Done!"

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

mr.effect 08-06-2011 06:29 AM

السلام عليكم

الله ينور عليك ياريس طريقة حلوة فعلا
بس اية رأيك لو تختصر الكود شوية كدا يكون افضل ياعنى علشان اللود بتاع السرفر وكدا
كود PHP:

<?
 $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:

<?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

اقتباس:

المشاركة الأصلية كتبت بواسطة khaledbelal (المشاركة 19145)
ما شاء الله ... جزاك الله خيرا يا حبيب
واهلا بك مرة اخرى بيننا

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

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

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


الساعة الآن 02:25 AM.

Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية

Ads Management Version 3.0.1 by Saeed Al-Atwi

a.d - i.s.s.w