Класс для защиты от sql инъекций (Рейтинг: +3)
Может кому-то пригодится
Файл sql.php
ну и
использование в удобном для вас месте этот код
Добавил: COMANDOS
20.01.2011 / 17:29Файл 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(); #####################################я меня стоит сразу после подключения к бд
Рейтинг:
+3
Просмотры: 1779Комментарии (6) »