Варианты скриптов для фильтрации данных перед вставкой в базу данных

Когда речь идёт о работе с БД, вы должны быть готовы отбиваться от SQL инъекций и прочих попыток вставить вредоносные данные. Функция, приведённая ниже, фильтрует данные, предотвращая от целого ряда опасностей

 


function cleanInput($input) {

  $search = array(
    '@<script[^>]*?>.*?</script>@si',   // javascript
    '@<[\/\!]*?[^<>]*?>@si',            // HTML теги
    '@<style[^>]*?>.*?</style>@siU',    // теги style
    '@<![\s\S]*?--[ \t\n\r]*>@'         // многоуровневые комментарии
  );

    $output = preg_replace($search, '', $input);
    return $output;
  }
?>
<?php
function sanitize($input) {
    if (is_array($input)) {
        foreach($input as $var=>$val) {
            $output[$var] = sanitize($val);
        }
    }
    else {
        if (get_magic_quotes_gpc()) {
            $input = stripslashes($input);
        }
        $input  = cleanInput($input);
        $output = mysql_real_escape_string($input);
    }
    return $output;
}


 

Пример использования:


 
<?php
  $bad_string = "Hi! <script src='http://www.evilsite.com/bad_script.js'></script> It's a good day!";
  $good_string = sanitize($bad_string);
  // $good_string returns "Hi! It\'s a good day!"
 
  // Also use for getting POST/GET variables
  $_POST = sanitize($_POST);
  $_GET  = sanitize($_GET);
?>

 


Другие ответы на вопрос: Варианты скриптов для фильтрации данных перед вставкой в базу данных


Имя:*
E-Mail:
Напишите ваш ответ:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*

206

QQpedia.ru - cамые интересные вопросы