صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 17

الموضوع: كلاس مضاد لهجمات flooding

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69

    كلاس مضاد لهجمات flooding



    السلام عليكم ورحمة الله وبركاتة

    أقدم لكم class يحمى من هجمات Flooding التى تعتمد على أستهلاك موارد كثيرة من السيرفر بكثرة الطلبات .

    أعلم أن هناك أضافات تركب على السيرفر لهذا الغرض لاكن هذا حل يستخدم فى برامج php

    فكرة class بسيطه يقوم بتخزين عناوين ip للمستخدمين على القرص الصلب واذا تجازوت طلبات المستخدم 50 طلب فى مدة أقل من أو تساوى 30 ثانية أى نص دقيقة يقوم بحجب الخدمة عن المستخدم لمدة زمنية بسيطة وبعد أنتهاء المدة يتصفح المستخدم الموقع مرة أخرى.

    فى حال كان رقم 50 طلب فى نصف دقيقة غير ملائم لمحركات البحث ممكن زيادتوا لعدم حدوث مشاكل مع محركات البحث

    يمكن أستدعاء هذا الكلاس فى كل البرامج المستخدمة فى الموقع ويتم أستدعائوا فى أول أستدعاء يستخدموا البرنامج مثال على منتديات vb يكون فى فايل
    [PHP
    require_once('./global.php');
    [/PHP]

    file:- global.php

    كود PHP:
    <?php
    /*======================================================================*\
    || #################################################################### ||
    || # vBulletin 3.8.0
    || # ---------------------------------------------------------------- # ||
    || # Copyright ©2000-2009 Jelsoft Enterprises Ltd.
    <br />Search Engine Optimization by <a rel="nofollow" href="http://www.crawlability.com/vbseo/">vBSEO</a> 3.1.0
    <br />Search Engine Optimization by <a rel="nofollow" href="http://www.crawlability.com/vbseo/">vBSEO</a> 3.1.0 All Rights Reserved. ||
    || # This file may not be redistributed in whole or significant part. # ||
    || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
    || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
    || #################################################################### ||
    \*======================================================================*/

    require_once('/home/user/public_html/antiflooding.php');

    file:- antiflooding.php
    كود PHP:
    <?php

       
    /**
       * Anti Flooding Class
       *
       * @link http://www.khdma.net
       * @author  Mostafa Moheyeldeen <info@khdma.net>
       * @copyright 2009
       * @version 1.0
       */

       
    class antiflooding {

           var 
    $pathic;

           function 
    writef($x$xx
           {
               
    $file fopen($x'w'); 
               
    fputs($file$xx);
               
    fclose($file); 
           }

           function 
    cleanci($pc$time
           {
               
    $file = @file_get_contents($pc);
               if (
    $file <= time() || $file == false)  
               {
                   
    $dirContent scandir($this->pathic);
                   
    $ci count($dirContent);
                   for(
    $x 0$x <= $ci$x++) 
                   {
                       @
    unlink($rootDir.$dirContent[$x]);
                   }
                   
    $this->writef($pctime() + $time);
               }
           }

           function 
    ip()
           {

               if (
    getenv('HTTP_CLIENT_IP')) 
               { 
                   return 
    getenv('HTTP_CLIENT_IP');
               } 
               elseif (
    getenv('HTTP_X_FORWARDED_FOR')) 
               { 
                   return 
    getenv('HTTP_X_FORWARDED_FOR');
               }
               elseif (
    getenv('HTTP_X_FORWARDED')) 
               {
                   return 
    getenv('HTTP_X_FORWARDED');
               } 
               elseif (
    getenv('HTTP_FORWARDED_FOR')) 
               {
                   return 
    getenv('HTTP_FORWARDED_FOR');
               } 
               elseif (
    getenv('HTTP_FORWARDED')) 
               { 
                   return 
    getenv('HTTP_FORWARDED');
               }

               return 
    $_SERVER['REMOTE_ADDR'];

           }

           function 
    antiflooding() 
           {
               
    $pathip $this->pathic.$this->ip();
               
    $time time();
               if ( 
    is_file($pathip) ) 
               {
                   
    $file = @file_get_contents($pathip);
                   
    $ex explode(':'$file);
                   
    $res = ($time $ex[0]);

                   if (
    $res >= 30
                   {
                       
    unlink($pathip);
                       
    $fb 1;

                   } elseif (
    $ex[1] >= 50
                   {

                       
    // Page was not found:
                       
    header('HTTP/1.1 404 Not Found');
                       exit();

                   } 

                   if (
    $res 30
                   {
                       
    $this->writef($pathip$ex[0].':'.($ex[1] + 1));
                   }

               } else {

                   
    $this->writef($pathip$time.':1');

               }

           }

       }

       
    $flood = new antiflooding();

       
    // path folder ip cache
       
    $flood->pathic '/home/user/public_html/cacheip/data/';

       
    // Clear the cache for the duration ... Example 120 seconds = 2 Minute
       
    $flood->cleanci('/home/user/public_html/cacheip/.clean'120);

    ?>

    أنشىء المسارات الأتية

    Permission: 0777 > folder: /home/user/public_html/cacheip/data/
    Permission: 0777 > file: /home/user/public_html/cacheip/.clean

    ومن antiflooding.php عدل الأعدادات


    كود PHP:
    هنا يتم تخزين عنواين IP للمستخدمين
    $flood
    ->pathic '/home/user/public_html/cacheip/data/'
    كود PHP:
    وهنا مدة حزف عناوين IP بعد مدة مثلا 120 ثناية دقيقتين
    فى حال كان عدد المستخدمين أكثر من 4000 فى الدقيقة فهناك حل أخر سا أناقشوا مرة أخرى
    $flood
    ->cleanci('/home/user/public_html/cacheip/.clean'120); 
    السلام عليكم





    الملفات المرفقة الملفات المرفقة
    __________________
    سبحان الله وبحمده سبحان الله العظيم


  2. #2


    ليست حل فعلي 100/100
    للـFlooding
    لانه ببساطة يمكن تغير البروكسي كل 25 ثانية (ولا يصل للمدة 30 ثانية التي حددتها انت لتحجب عنه الخدمة = 3 بروكسيات بالتداول وتبقى جميعها تعمل..... )






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    اخى الطيب على كلامك سيتم التصدى للهجمات





    __________________
    سبحان الله وبحمده سبحان الله العظيم

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512

    Lightbulb



    - ممكن تقليل المدة مثلا الى 3 او 5 ثواني و تضع كمية الزيارات المقبولة .. يعني المدة الكافية فقط للنأكد من انها زيارات غير طبيعية.

    - ثم تخزين الايبيهات المشتبه فيها لفلترة الزيارات بها قبل تمريرها لدالة التحقق الاساسية.

    - و الايبيهات المخزنة لا تمسح الا عند التحقق من انها لمستخدمين عاديين، او تمسح على فترات متباعدة .. اسبوعيا او شهريا.

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


    * ممكن نستبدل اشارة ال404 بصفحة عادية بدون اخطاء، بها نصوص او ارقام تتغير عشوائيا random و بأطوال عشوائية.. هذا يصعب على الروبوت ترجمتها و من ثم تغيير البروكسي.
    * ايضا مراعاة ان كمية الزيارات المحددة تتناسب مع سرعة محركات البحث حتى لا يتم حظرها.
    * قد تستخدم rules اخرى مثل الreferrer لكن بحساب دقيق لأنه يمكن تفاديها بسهولة.





    __________________
    محمد حمود.

  5. #5


    - ممكن تقليل المدة مثلا الى 3 او 5 ثواني و تضع كمية الزيارات المقبولة .. يعني المدة الكافية فقط للنأكد من انها زيارات غير طبيعية.

    - ثم تخزين الايبيهات المشتبه فيها لفلترة الزيارات بها قبل تمريرها لدالة التحقق الاساسية.

    - و الايبيهات المخزنة لا تمسح الا عند التحقق من انها لمستخدمين عاديين، او تمسح على فترات متباعدة .. اسبوعيا او شهريا.

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


    * ممكن نستبدل اشارة ال404 بصفحة عادية بدون اخطاء، بها نصوص او ارقام تتغير عشوائيا random و بأطوال عشوائية.. هذا يصعب على الروبوت ترجمتها و من ثم تغيير البروكسي.
    * ايضا مراعاة ان كمية الزيارات المحددة تتناسب مع سرعة محركات البحث حتى لا يتم حظرها.
    * قد تستخدم rules اخرى مثل الreferrer لكن بحساب دقيق لأنه يمكن تفاديها بسهولة.
    صدقوني اخواني كل هذه كانت حلول قديمة جدا واثبتت عدم جدواها

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





    __________________
    السيف أصدق أنباء من الكتب

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    59


    تستطيع انشاء استثناء لمحركات البحث وبذلك تضمن ان محركات البحث سوف تتصفح موقعك بشكل سليم بينما الباقي محددين بالقيود التي وضعتك بالكلاس
    اولا انشئ مجموعة باسم محركات البحث او بالحرى مصفوفة
    ومن ثم نضع شرط لاستثناء محركات البحث






  7. #7


    كذا في كل طلب راح يتاكد من الايبي و يضغط على السيرفر ... كويس للمواقع الصغيرة





    __________________
    ايزي وامب
    Apache2+PHP5+PHP4+MySQL5+phpmyadmin
    ww.easywamp.com
    ________________________________

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512


    استخدام هذه الطريقة مفيد اذا كانت هناك عدة استعلامات بالصفحة الواحدة، او عندما لا يوجد نظام كاش قوي.
    بمعنى ان عملية جلب و التحقق من الايبي اخف من اجراء استعلام عادي على قاعدة البيانات،
    خاصة اذا كان تعاملك مع البينات المخزنة عن طريق الرام بدلا من الكتابة على الملفات.

    و هناك مواقع تستعمل هذ "الاسلوب" في جدارات نارية لكن عن طريق الApache Tweaking ب rules مختلفة، و قد يتم تفعيله اذا ارتفع اللود بصورة غير معتادة فقط.

    اخ محب الله ورسوله، يمكنك ذلك عن طريق اخذ بصمة الuser agent و من ثم عرض المحتوى المخصص للزوار او المخصص للروبوت
    لكن هذه الطريقة ليست مضمونة. نظرا لان اليوزر يرسل هذه القيمة عن طريق الHTTP request في كل طلب للصفحة.





    __________________
    محمد حمود.

  9. #9


    يعني لو اردت عرض محتوي خاص لمحرك بحث محدد لأي غرض
    هل يمكنني ذلك ام ان المحركات اذكي من ذلك ؟





    __________________
    السيف أصدق أنباء من الكتب

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512


    بالطبع يمكن اكتشافها بسهولة .. فقط يغيروا بصمة الuser agent الخاص بهم

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

    لكن لا اعرف اذا كانت المحركات الاخرى تعاقب عليها ام لا.





    __________________
    محمد حمود.

  11. #11


    سأجرب لعبة انا واختبرها ليس فيها تلاعب ولكن استكشاف
    اشكرك يالغالي





    __________________
    السيف أصدق أنباء من الكتب

  12. #12
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69




    السلام عليكم

    mr_m :
    المدة من 1 الى 30 ثانية فى حال حدث طلبات غير طبيعية اكثر من او ياسواى 50 طلب يتم الحجب لمدة زمنية بسيطه ولو حاول تانى يحدث نفس الكلام
    بالنسبة لتخزين الأيبيهات فهذا الحل يبطىء الخدمه عن وجود ايبيهات مهاجمة كثيرة, بالنسبة لأى بروكسى يتم استخداموا يعامل معاملة اى ip أخر
    بالنسبة لكمية الزيارات من 1 الى 30 ثانية ممكن تزويدها كى تناسب محركات البحث
    وبالنسبة للكلاس فهو مفيد لأى صفحة php ثواء كانت تتعامل مع قواعد أو لا
    بالنسبة ل user agent من السهل جدآ أنت يتغلب عليها المهاجم

    محب الله ورسوله :
    "كيف يمكنني التعرف علي روبوت جوجل وتحديد محتوي او رسالة معينة تظهر له ؟او اي روبوت اخر " أعتقد ان جوجل يراعى عدد زيارات محدد فى وقت زمنى قصير وألا كانت كل المواقع وقفت


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

    ايزي وامب :
    أخى لايحدث ضغط نهائى على السيرفر جرب بنفسك.

    -----------

    أريد من كل من يعرف طريقة قوية لعمل flooding أن يستخدم الكلاس ويخبرنا بالنتائج






    __________________
    سبحان الله وبحمده سبحان الله العظيم

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    281


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





    التعديل الأخير تم بواسطة tech ; 04-10-2009 الساعة 08:33 AM

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    70


    وعليكم السلام ورحمة الله وبركاته

    قد تؤثر على سرعة تصفح المنتدى خاصة وان العضو او الزائر بيقرا مواضيع ويفتح اكثر من صفحة
    وكل شوي يتعدل على الملف وينفذ نفس الأوامر ..

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

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

    بالتوفيق





    __________________
    سبحان الله و بحمده سبحان الله العظيم

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    السلام عليكم ورحمة الله وبركاتة

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





    __________________
    سبحان الله وبحمده سبحان الله العظيم





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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