ОБСУЖДЕНИЕ

CoveringForce

19 сообщений0 просмотровОткрыта
#1
Дайте пожалуйста этот модуль)
За ранее огромное спасибо)
#2
maks16092000, а извините за вопрос , можно уточнить что это ?
#3
-=Rus-alc=-,
тип защита сайта
#4
maks16092000,
PHP
 <?php

/**
* Класс фильтрации глобальных переменных
* Соавтор: Кредитор
* Icq: 441460
* Email: kpegumop@yandex.ru
* Сайт: http://gix.su - Безопасные сделки, модули и дизайны для ваших сайтов, seo скрипты, оптимизация, безопасность
* Любые скрипты на заказ
*/

class AntiHack {

     private $getarr = ''; // Ключ для распознавания массива
   
     private $input = array(); // Массив для фильтрации

     private $arraykey = 256; // максимальное количество символов в ключе массива

     private $arrayvalue = 100000; // максимальное количество символов в значении массива

     // Ключи для удаления из массива _SERVER
     private $arrayserverkey = 'COMSPEC;SYSTEMROOT;PATHEXT;UNIQUE_ID;PATH;GATEWAY_INTERFACE;SERVER_SIGNATURE;SERVER_ADMIN;PERL5LIB';


   function __construct()
   {
      $this->filter($this ->input, $this->getarr);
   }


   private function __cleaning($input, $keyss, $getarr)
   {
                 if (!empty($input) && $keyss == 'value' && $getarr != 'post')$input = urldecode($input);
                 
/******                 $input = str_replace(array("n", "r", "t"), null, trim($input));******/

                 $charset = mb_detect_encoding($input);
                 
                 $input = (($charset != 'UTF-8')?iconv((($charset === 'ASCII')?'WINDOWS-1251':$charset), 'UTF-8', $input):$input);
                              
                 if (!empty($input) && $keyss === 'key')
                 {
                  $input = preg_replace('#[^a-z0-9-_]+#i', null, $input);
                  $input = (string)strip_tags($input);
                 
                 }
                 elseif (($getarr === 'get' || !empty($input)) && $keyss === 'value')
                 {

                 if ($getarr === 'get') 
                 {
                 $input = preg_replace('#[^(a-z0-9-_()&=?;:./][)|(x7F-xFF)|(s)]+#is', null, $input );

                  $input = str_replace('../', '', $input);      
                 }
                 elseif ($getarr === 'post')
                 { 
                       $input = str_replace('javascript', 'jаvаsсriрt', $input);
                       $input = htmlentities($input, ENT_QUOTES, 'UTF-8');
                       $input = addslashes($input);
                       
                 }
                 elseif ($getarr === 'files')
                 {
                      if (!is_string($input)) 
                      {
                      $input = intval($input);
                      }
                      else
                      {
                      $input = preg_replace('#[^(a-zа-я0-9-_()&=?;:./)|(x7F-xFF)|(s)]+#is', null, $input );
                      }
                  
                 }
                 elseif ($getarr === 'cookie')
                 {
                 $input = preg_replace('#[^a-z0-9-_]+#i', null, $input);
                 }
                 elseif ($getarr === 'server')
                 {
                 $input = str_replace('\', '/', $input);
                 $input = preg_replace('#[^a-z0-9-_/.s:;,?=@]+#i', null, $input);
                 }
                 elseif ($getarr === 'request')
                 {
                      if (!is_string($input))
                      {
                      $input = intval($input);
                      }
                      else
                      {
                      $input = htmlentities($input, ENT_QUOTES, 'UTF-8');
                      }
                  
                 }
                 else
                 {
                 $input = (string)htmlentities( $input, ENT_QUOTES, 'UTF-8');
                 $input = strip_tags($input);
                 }
            }
            /*else
            {
            $input = null;
            }*/
       
       return ( $input );
       }



   private function __sorting($input, $getarr)
   {
      if (!is_array($input))return(null);
      
      $arr_delete = explode(';', $this->arrayserverkey);

      foreach($input as $key => $value)
     {
              
             if ($getarr === 'server') 
             {
             $key = strtoupper($key);
                  for ($i = 0; $i < count($arr_delete); $i++) 
                  {
                        if (strnatcasecmp($key, $arr_delete[$i]) === 0)$value = null;
                  }
            }

             if ((!$key || $key == '' || $value === null || isset($key{$this->arraykey})) || ($getarr === 'files' && !is_uploaded_file($input[$key]['tmp_name'])))continue;
              
             if (!is_array($value)) {
                   if (isset($value{$this->arrayvalue}))continue;
                    
                   $result[$this->__cleaning($key, 'key', $getarr)] = $this->__cleaning($value, 'value', $getarr);
             }
             else {
                   foreach($value as $item => $field) {
                          if ($field === '' || $field === null || isset($item{$this->arraykey}) || isset($field{$this -> arrayvalue}))continue;
                          
                          $value[$this->__cleaning($item, 'key', $getarr)] = $this->__cleaning($field, 'value', $getarr);
                   }
                   $result[$this->__cleaning($key, 'key', $getarr)] = $value;
             }
       }
       return ((isset($result) ? $result : null));
   }



   function filter($input, $getarr)
   {
      if (count($input) === 0) {
             return(null);
      }
             $getarr = strtolower($getarr);
             $getarr = str_replace(' ', null, trim($getarr ));
             return ($this->__sorting($input, $getarr));
   }



}//end AntiHack
?> 
#5
maks16092000, /**
* Класс фильтрации глобальных переменных
* Oбновлен 04.10.2013 г.
* Соавтор: Кредитор
* Icq: 441460
* Email: kpegumop@yandex.ru
* Сайт: http://gix.su - Безопасные сделки, модули и дизайны для ваших сайтов, seo скрипты, оптимизация, безопасность
* Любые скрипты на заказ
*/


Описание: Очень простой и шустрый класс фильтрации глобальных переменных на предмет sql inj и xss. Прост в установке.

Установка:
1. Создайте папку /sys/classes/
2. Загрузите в нее файл AntiHack.class.php из архива
3. Откройте файл /sys/inc/user.php и в самом конце пропишите сдедующие строки:

if ($_SERVER['PHP_SELF'] != '/adm_panel/mysql.php')
{ require(H . 'sys/classes/AntiHack.class.php');
$lq = new AntiHack;

if (isset($_GET))$_GET = $lq->filter($_GET, 'get');
if (isset($_POST))$_POST = $lq->filter($_POST, 'post');
if (isset($_FILES))$_FILES = $lq->filter($_FILES, 'files');
if (isset($_COOKIE))$_COOKIE = $lq->filter($_COOKIE, 'cookie');
if (isset($_SERVER))$_SERVER = $lq->filter($_SERVER, 'server');
if (isset($_REQUEST))$_REQUEST = $lq->filter($_REQUEST, 'request');
unset($lq);
}

if (isset($_GET['_1118538408(0)']))die('Этот способ взлома больше не работает. (с) Кредитор');




4. Откройте файл /sys/fnc/output_text.php и ПЕРЕД строкой:

if ($html == true)$str = htmlentities($str, ENT_QUOTES, 'UTF-8');

добавьте строку:

$str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');

По сути это все. Если в дальнейшем у вас будут появляться например в форуме, новостях или почте перед кавычками символы |, откройте файл /sys/inc/output_text.php и в самом конце функции файла измените строку(у всех она может отличаться):

return $str;

на

return stripslashes($str);

// или например return esc($str); на return stripslashes(esc($str));
// суть думаю ясна. Если что, все поясню


5. После установки класса, фильтровать данные в форме ввода уже не нужно. Передаваемые параметры в $_GET будут обработаны регуляркой и избавятся от опасных символов. Остальные глобальные переменные обработаны функцией htmlentities(), что обезопасит формы.


//Если в чем то сомневаетесь, обращайтесь, я подскажу






Рекомендации: Зная любовь пользователей к сливу всего купленного в обменники, напоминаю, что хуже вы делаете не мне. открытый исходный код всегда уязвим и, рано или поздно, Вам самим придется заплатить в десятки раз больше за индивидуальную безопасность Вашего ресурса. Будьте людьми наконец. Повзрослейте
#6
-=Rus-alc=-, А можешь файлом дать скрипт?)
#7
maks16092000, скопируй и вставь в файл
#8
-=Rus-alc=-, Не получаеться тклефон тупит
#9
-=Rus-alc=-, Скинь в лс но мне кажеться что так же будет
#10
maks16092000, зип
#11
-=Rus-alc=-, В лс пожалуйста скинь
#12
-=Rus-alc=-, Спасибо огромное!
#13
PHP

<?php
if (isset($_GET))$_GET = $lq->filter($_GET, 'get');
if (isset($_POST))$_POST = $lq->filter($_POST, 'post');
if (isset($_FILES))$_FILES = $lq->filter($_FILES, 'files');
if (isset($_COOKIE))$_COOKIE = $lq->filter($_COOKIE, 'cookie');
if (isset($_SERVER))$_SERVER = $lq->filter($_SERVER, 'server');
if (isset($_REQUEST))$_REQUEST = $lq->filter($_REQUEST, 'request');


хоспади....
#14
бредятина это все)
#15
Написано много лишнего, не нужного..
Но для тех, кто не разбирается, создаст впечатление "ну точно уже не сломают" :) и покупали ж.
#16
KpuTuK, Это куда вставлять?
#17
ох как я бы не советовал))
#18
PHP
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);

и так далее http://php.net/manual/ru/book.filter.php
#19
давно убрал эту хрень. 18 пост ссылочка там есть на хорошую защиту