Класс для защиты от sql инъекций (Рейтинг: +3)

Печать RSS
Может кому-то пригодится
Файл sql.php
<?php
 class InitVars {
 # Недопустимые слова в запросахINSERT
         var $deny_words = array('UNION','CHAR','INSERT','DELETE','SELECT','UPDATE','GROUP','ORDER','BENCHMARK','union','char','insert','delete','select','update','group','order','benchmark');
 
 function InitVars() {
 }
 
 # Метод конвентирует суперглобальные массивы $_POST, $_GET в перемнные
 # Например : $_GET['psw'] будет переобразовано в $psw с тем же значением
 function convertArray2Vars () {
 
         foreach($_GET as $_ind => $_val) {
                 global $$_ind;
                 if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
         }
 
         foreach($_POST as $_ind => $_val) {
                 global $$_ind;
                 if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
 
         }
 }
 
 # Метод проверяет $_GET и $_POST переменные на наличие опасных данных и SQL инъекций
 function checkVars() {
         //Проверка опасных данных.
         foreach($_GET as $_ind => $_val) {
                         $_GET[$_ind] = htmlspecialchars(stripslashes($_val));
 
                         $exp = explode(" ",$_GET[$_ind]);
                         foreach($exp as $ind => $val) {
                                 if(in_array($val,$this->deny_words)) $this->antihack("Запрещено!Доступ закрыт!<br>");
                         }
         }
 
         foreach($_POST as $_ind => $_val) {
                         $_POST[$_ind] = htmlspecialchars(stripslashes($_val));
 
                         $exp = explode(" ",$_POST[$_ind]);
                         foreach($exp as $ind => $val) {
                                 if(in_array($val,$this->deny_words)) $this->antihack("Запрещено!Доступ закрыт!<br>");
                         }
         }
 
 }
 
 function antihack($msg) {
     echo '<font color="red"><b>АХТУНГ: </b></font>'.$msg.'<br>\n';
     die;
 }
 
 }
 
 ?>

ну и
использование в удобном для вас месте этот код
#####################################
 include('путь/sql.php');
 
 $stop_injection = new InitVars();
 $stop_injection->checkVars();
 #####################################
я меня стоит сразу после подключения к бд krut
Добавил:
Рейтинг: +3
Просмотры: 1740
Комментарии (6) »