عرض مشاركة واحدة
قديم 10-04-2011, 10:54 PM   رقم المشاركة : 1 (permalink)
معلومات العضو
bleu moon
 
الصورة الرمزية bleu moon
 

 

 
إحصائية العضو








bleu moon غير متواجد حالياً

 

 

إحصائية الترشيح

عدد النقاط : 12
bleu moon is on a distinguished road

افتراضي الحمايه من تغرات sql و xss


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

هذه الدالة سهلة وبسيطة وتم اختبارها وهي فعالة جدا

تستخدم للحماية من أخطار XSS و SQL INJECTION

وهي مقسمة الى دالتين حيث يتم استدعاء الدالة الثانية من داخل الدالة الأولى


كل ما عليك هو استخدام الدالة الأولى فقط


اكواد الدوال


كود PHP:
/*----------------------------------------------------------*/
  /* 1 - function safe($str,$type='all')                      */
  /*----------------------------------------------------------*/
  
  /**
   * XSS و SQL INJECTION تأمين النص من اخطار  
   * تأخذ هذه الدالة بارميترين
   *
   * 1 - $value : وهو النص المراد فحصه
   * 2 - $type  : وهو اختياري ويحدد نوع التأمين المطلوب على النص
   */
   
  
function safe($str,$type='all')
  {
      
// اذا كان المطلوب تأمين شامل للنص
      
if ($type == 'all') {
          
// SQL INJECTION تأمين النص من اخطار
          
mysql_prep($str);
          
// XSS تأمين النص من اخطار
          
return htmlspecialchars($str);
      
      
// SQL INJECTION اذا كات المطلوب تأمين النص من اخطار
      
} elseif ($type == 'slash') {
          
mysql_prep($str);
          return 
$str;
      }
  }
  
  
/*----------------------------------------------------------*/
  /* 2 - function mysql_prep($value)                          */
  /*----------------------------------------------------------*/
  
  /**
   * SQL INJECTION  تأمين النص من اخطار  
   * تأخذ هذه الدالة بارميتر واحد
   * $value وهو النص المراد فحصه
   */
   
  
function mysql_prep($value
  {
      
/**
       * magic quotes التأكد من حالة 
       * هل هي مفعلة أو لا وتخزين الناتج في متغير 
       */
      
$magic_quotes_active get_magic_quotes_gpc();
  
      
/**
       * php التأكد من اصدار 
       * في حالة كان الاصدار اعلى من 4.3
       * اذن يمكن استخدام 
       * mysql_real_escape_string
       */
       
      // i.e. PHP >= v4.3.0
      
$new_enough_php function_exists"mysql_real_escape_string" ); 
  
      
/**
       * التأكد من ما اذا كان اصدار 
       * php = v4.3
       * أو اعلى عن طريق استخدام النتغير
       * $new_enough_php
       */
       
      // PHP v4.3.0 or higher
      
if ($new_enough_php) { 
  
          
/**
           * التراجع عن تأثير
           * magic quotes
           * حتى تقوم الدالة
           * mysql_real_escape_string
           * بعملها
           */
           
          // undo any magic quote effects so mysql_real_escape_string can do the work
          
if ($magic_quotes_active) { 
              
$value stripslashes($value); 
          }
          
$value mysql_real_escape_string($value);
      } 
      
// v4.3.0 اذا كان اصدار بي اتش بي اقدم من 
      // before PHP v4.3.0
      
else { 
          
// لاضافة علامات الاقتباس addslashes غير مفعلة يتم استخدام magic quotes اذا كانت 
          // if magic quotes aren't already on then add slashes manually
          
if (!$magic_quotes_active) { 
              
$value addslashes($value); 
          }
          
// مفعلة اذا سيتم اضافة علامات الاقتباس تلقائيا magic quotes اذا كانت  
          // if magic quotes are active, then the slashes already exist
      
}
      return 
$value;
  } 
طريقة استخدام الدالة

كود PHP:
// مثال على استخدام الدالة
  
$str '<p>Protect your site from nor15din</p>';
  
  
// قبل الحماية
  
echo $str;
  
  
// بعد الحماية
  
echo safe($str); 




hgplhdi lk jyvhj sql , xss