phpDocumentor PHPShopClass
[ class tree: PHPShopClass ] [ all elements ]

Source for file security.class.php

Documentation is available at security.class.php

  1. <?
  2. /**
  3.  * Библиотека проверки безопасности
  4.  * @author PHPShop Software
  5.  * @version 1.2
  6.  * @package PHPShopClass
  7.  */
  8. class PHPShopSecurity {
  9.  
  10.     /**
  11.      * Проверка на пустые данные
  12.      * @return bool
  13.      */
  14.     function true_param({
  15.         $Arg=func_get_args();
  16.         foreach($Arg as $val{
  17.             if(empty($val)) return false;
  18.         }
  19.         return true;
  20.     }
  21.  
  22.     /**
  23.      * Проверка расширения файла
  24.      * @param string $sFileName имя файла
  25.      * @return mixed
  26.      */
  27.     function getExt($sFileName{
  28.         $sTmp=$sFileName;
  29.         while($sTmp!=""{
  30.             $sTmp=strstr($sTmp,".");
  31.             if($sTmp!=""{
  32.                 $sTmp=substr($sTmp,1);
  33.                 $sExt=$sTmp;
  34.             }
  35.         }
  36.         $pos=stristr($sFileName"php");
  37.         if($pos === falsereturn strtolower($sExt);
  38.     }
  39.  
  40.     /**
  41.      * Очистка строк от [/]["][']
  42.      * @param string $str текст для проверки
  43.      * @return string
  44.      */
  45.     function CleanStr($str{
  46.         $str=str_replace("/","",$str);
  47.         $astr_replace("\""""$str);
  48.         return str_replace("'"""$a);
  49.     }
  50.  
  51.     /**
  52.      * Очистка тегов и переводов строк  [\r\n\t]
  53.      * @param string $str текст для анализа
  54.      * @return string
  55.      */
  56.     function CleanOut($str{
  57.         $str preg_replace('([\r\n\t])'''$str);
  58.         $str @html_entity_decode($str);
  59.         return $str;
  60.     }
  61.  
  62.     /**
  63.      * Проверка почтового адреса
  64.      * @param string $email адрес
  65.      * @return bool
  66.      */
  67.     function true_email($email{
  68.         if(strlen($email)>100return FALSE;
  69.         return preg_match("/^([a-z0-9_\.-]+@[a-z0-9_\.\-]+\.[a-z0-9_-]{2,6})$/i",$email);
  70.     }
  71.  
  72.     /**
  73.      * Проверка логина
  74.      * @param string $login логин
  75.      * @return bool
  76.      */
  77.     function true_login($login{
  78.         return preg_match("/^[a-zA-Z0-9_\.]{2,20}$/",$login);
  79.     }
  80.  
  81.     /**
  82.      * Проверка номера
  83.      * @param int $num номер
  84.      * @return bool
  85.      */
  86.     function true_num($num{
  87.         return preg_match("/^[0-9]{1,5}$/",$num);
  88.     }
  89.  
  90.     /**
  91.      * Проверка пароля
  92.      * @param string $passw пароль
  93.      * @return bool
  94.      */
  95.     function true_passw($passw{
  96.         return preg_match("/^[a-zA-Z0-9_]{4,20}$/",$passw);
  97.     }
  98.  
  99.     /**
  100.      * Универсальная проверка
  101.      * @param string $str строка
  102.      * @param int $flag параметр [1]-корзину,[2]-преобразует все в код html,[3]-почту,[4]-ввод с формы,[5]-цифры
  103.      * @return mixed
  104.      */
  105.  
  106.     function TotalClean($str,$flag=2{
  107.  
  108.         switch ($flag{
  109.             case 1:
  110.                 if(!ereg ("([0-9])"$str)) $str="0";
  111.                 return abs($str);
  112.                 break;
  113.  
  114.             case 2:
  115.                 return htmlspecialchars(stripslashes($str));
  116.                 break;
  117.  
  118.             case 3:
  119.                 if(!preg_match("/^([a-z0-9_\.-]+@[a-z0-9_\.\-]+\.[a-z0-9_-]{2,6})$/i",$str)) $str="";
  120.                 return $str;
  121.                 break;
  122.  
  123.             case 4:
  124.                 if(preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$str)) $str="";
  125.                 return  htmlspecialchars(stripslashes($str));
  126.                 break;
  127.  
  128.             case 5:
  129.                 if(preg_match("/[^(0-9)|(\-)|(\.]/",$str))  $str=0;
  130.                 return $str;
  131.                 break;
  132.         }
  133.  
  134.     }
  135.  
  136.     /**
  137.      * Проверка Request переменных на запрещенные команды
  138.      * @param string $search
  139.      */
  140.     function RequestSearch($search{
  141.         $pathinfo=pathinfo($_SERVER['PHP_SELF']);
  142.         $f=$pathinfo['basename'];
  143.         if(empty($_SESSION['theme'])) $_SESSION['theme']='classic';
  144.         $com=array("union","select","insert","update","delete");
  145.         $mes='<h3>Внимание</h3>Работа скрипта '.$_SERVER['PHP_SELF'].' прервана из-за использования запрещенной команды';
  146.         $mes2="<br>Удалите все вхождения этой команды в водимой информации.";
  147.         foreach($com as $v)
  148.             if(@preg_match("/".$v."/i"$search)) exit($mes.' <b style="color:red">'.$v.'</b>'.$mes2);
  149.     }
  150.  
  151. }
  152.  
  153. ?>

Documentation generated on Mon, 25 Jun 2012 15:09:51 +0400 by phpDocumentor 1.4.3