Shipito
ركن لغات البرمجه : :: لغات البرمجه php و asp و Ajax و Java و غيرها

[درس] ثغرات حقن Sql والحماية منها في Php

تحديث تلقائي كل 5 ثواني. تم إيقاف التحديث التلقائي بسبب بقائك في وضع الخمول تمكين التحديث - اعادة تحديث
Like Tree1معجبون
  • 1 أضيفت بواسطة Yee7.com
Yee7.com
:: عضو فعال ::
تاريخ الإنضمام: 09 - 11 - 2006
رقم العضوية : 28013
المشاركات: 145
قديمة 11 - 12 - 2007, 23:43
المشاركة 1
نشاط Yee7.com
  • قوة السمعة : 131
  • الإعجاب: 1
    افتراضي [درس] ثغرات حقن Sql والحماية منها في Php


    ثغرات حقن SQL والحماية منها في PHP

    السلام عليكم ورحمة الله ..
    قبل البدء في الموضوع ثغرات حقن SQL أصبحت خطيرة لأبعد الحدود ولا يستهان بها فأبسطها تكون بالوصول إلى البيانات وتعديلها أو حتى حذفها وأخطرها لا يمكن حصرها لتنوعها وقوتها
    وضعت هذا الموضوع بعد أن رأيت بأن الكثير من السكريبتات العربية آخرها vbzoom هي ضحية لثغرات حقن SQL وهذا السبب الذي جعل الكثيرين يبتعدوا عن استخدامها والإتجاه نحو السكريبتات الأجنبية والمعربة.
    أبسط طريقة للتسبب في خطأ SQL هو إدخال علامة التنصيص الكوما في الإنجليزية في اماكن إدخال البيانات سواء فورم ارسال أو في رابط ، في حال ظهر خطأ شبيه لما في الصورة التالية هنا تكون الخطورة حيث يمكن إستغلال الخطأ بوضع جمل إستعلامية SQL في منطقة الخطأ .. الخ ، وتتعدد الخطورة حسب ما ذكرت بالبداية.


    [درس] ثغرات حقن Sql والحماية منها في Php

    وهنا مثال لعملية حقن SQL في صفحة PHP
    رمز PHP:
     
       <?php
      
        
       $_POST
    ['username'] = 'shockshadow';
     
    $_POST['password'] = "' OR ''='";
     
       
        
       
    // البحث في قاعدة البيانات عن عضوية مشابهة لمدخلات المستخدم
     
    $query "SELECT * FROM users WHERE user='".$_POST['username']."' AND password='".$_POST['password']."'";
     
    mysql_query($query);
     
     
    // لم نقم بفحص المتغير $_POST['password'] الذي أدخله المستخدم, قد يحتوي على أي أوامر يريدها المستخدم! وفي مثالنا هذا قام المستخدم بتخطي كلمة المرور:
     
    ?>


    هذا يعني بأن الاستعلام الذي تم ارسالة أصبح كالتالي
    رمز Code:
    SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
    لا تعليق!!


    الحماية من ثغرات حقن SQL في PHP ، البعض بل الكثيرين وانا كنت أحدهم يستخدموا عمليات البحث في البيانات المدخلة وفحصها من احتوائها على رموز معينة يتم تحديدها مسبقاً وتنفيذ الأوامر في حال لم يوجد أي من هذه الرموز هذه الطريقة بدائية وقد تفقدنا الكثير من مميزات برامجنا... الأن سأشرح طريقة رسمية ومضمونة وبسيطة جداً تحقق نسبة أمان عالية في تفادي عمليات الحقن وأيضاً يمكننا إدخال أي نوع من الرموز بدون أية مشاكل!! وهي باستخدام إحدى دوال PHP المخصصة لذلك وهي الدالة
    رمز PHP:
    Mysql_real_escape_string() 
    حيث يجب تمرير كل مدخلات المستخدم من خلال هذه الدالة حيث تعمل على فلترة وتحويل الرموز الخطيرة بحيث لا يكون لها أي تأثير في الاستعلام ويتم التعامل معها كنص عادي

    مثالنا السابق مع عمل فلترة عن طريق الدالة للمدخلات:
    رمز PHP:
     
       <?php
      
       
       $_POST
    ['username'] = 'shockshadow';
     
    $_POST['password'] = "' OR ''='";
     
       
        
       
    // البحث في قاعدة البيانات عن عضوية مشابهة لمدخلات المستخدم
     
    $query "SELECT * FROM users WHERE user='"mysql_real_escape_string($_POST['username'])."' AND password='"mysql_real_escape_string($_POST['password'])."'";
     
    mysql_query($query);
     
     
    // لاحظ اننا قمنا بفلترة المتغيرات عن طريق الدالة وهنا يتم ابطال مفعول الحقن
     
    ?>


    درسنا ينتهي هنا وسامحونا على الإطالة التي تعمدتها من أجل إستيعاب هذا النوع من الثغرات
    للمزيد تفضل بزيارة الصفحة التالية
    http://www.php.net/manual/en/function.mysql-real-escape-string.php

    ===========
    جميع حقوق الشرح محفوظة للأمن الإلكتروني 2007
    أخوكم ShockShadow

    Tags
    Secure against SQL injection attacks
    الحماية من ثغرات حقن إس كيو إل SQL
    العذاب معجب بهذا.
    قديمة 11 - 12 - 2007, 23:47
    المشاركة 2
    صورة 'آحمد جرافيكس' الرمزية
    آحمد جرافيكس
    :: عضو نشيط ::
    تاريخ الإنضمام: 07 - 03 - 2007
    رقم العضوية : 32949
    الدولة : الشـرقيهـ
    المشاركات: 2,791
    افتراضي
    جزاك الله خير اخوي
    اللهم آدخـلني الجـنــة مـــع الآبـــــرار ياأرحم الراحمــيــن


    سأعود قريبـــا إن شاء الله
    قديمة 11 - 12 - 2007, 23:53
    المشاركة 3
    صورة 'TheStudent' الرمزية
    TheStudent
    ||| عضو التميز |||
    تاريخ الإنضمام: 11 - 08 - 2006
    رقم العضوية : 25821
    الدولة : Hail
    المشاركات: 16,122
    افتراضي
    لاهنت يالغالي ...

    ترايدنت .. أيامُ لا تنسى !
    قديمة 11 - 12 - 2007, 23:58
    المشاركة 4
    حازم علي
    :: عضو نشيط ::
    تاريخ الإنضمام: 23 - 09 - 2006
    رقم العضوية : 26745
    الدولة : Egypt
    المشاركات: 2,563
    افتراضي
    شكراً لك أخي ...
    موضوع ذات صلة
    الحمايه في php -و تأمين المدخلات -من أجل php أمنه - و أكثر تحكماً
    اشهد ان لا اله الا الله و ان محمد رسول الله
    قديمة 12 - 12 - 2007, 11:43
    المشاركة 5
    صورة 'العذاب' الرمزية
    العذاب
    ||| عضو التميز |||
    تاريخ الإنضمام: 12 - 05 - 2005
    رقم العضوية : 4275
    الدولة : البعد الرابع
    المشاركات: 12,298
    • أرسل رسالة بواسطة ICQ إلى العذاب
    • أرسل رسالة بواسطة AIM إلى العذاب
    • أرسل رسالة بواسطة MSN إلى العذاب
    • أرسل رسالة بواسطة Yahoo إلى العذاب
    • أرسل رسالة بواسطة Skype™ إلى العذاب
    قديمة 13 - 12 - 2007, 22:27
    المشاركة 6
    الشعباوي
    :: عضو جديد ::
    تاريخ الإنضمام: 15 - 05 - 2005
    رقم العضوية : 4354
    المشاركات: 14
    افتراضي
    الصراحة درس وايد مهم ومفيد

    يزاااك الله خيير ياخوي

    وما تقصر...
    قديمة 14 - 12 - 2007, 13:22
    المشاركة 7
    صورة 'دايم الحمد' الرمزية
    دايم الحمد
    ::عضو مؤسس ::
    تاريخ الإنضمام: 06 - 09 - 2005
    رقم العضوية : 8142
    الدولة : جبـال الحجــاز
    المشاركات: 10,935
    افتراضي
    موضوع مهم جدا

    ما قصرت يالغالي
    " شكرا ترايدنت "

    بسبب التفرغ للحياة المستقبلية تم ايقاف البث -الاثنين 12 جمادى الآخرة 1429هـ -

    شكرا تركي , شكرا هلال , شكرا ابو وليد , شكرا ابو عايض , شكرا أحمد , شكرا للجميع

    سبحانك اللهم وبحمدك ، أشهد أن لا إله إلا أنت أستغفرك وأتوب إليك
    اضافة رد
    العلامات المرجعية

    [درس] ثغرات حقن Sql والحماية منها في Php

    تحديث تلقائي كل 5 ثواني. تم إيقاف التحديث التلقائي بسبب بقائك في وضع الخمول تمكين التحديث - اعادة تحديث

    إسطوانة تعليم جافا سكريبت ( عربي ) مساعدة اضافة صفحة Php في منتدى Vb

    أدوات الموضوع
    طرق العرض



    الساعة معتمدة بتوقيت جرينتش +3 . الساعة الآن : 00:09.
    المعهد غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
    فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
    التعليقات المنشورة لا تعبر عن رأي معهد ترايدنت ولا نتحمل أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

    جميع الحقوق محفوظة Traidnt 2015
    • 009669200920037
    • 00966138648289
    • 2051033691
    Powered by vBulletin® Version 3.8.7 .Copyright ©2000 - 2015, Jelsoft Enterprises Ltd
    SEO by vBSEO ©2011, Crawlability, Inc.