1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Защита от инъекций

Тема в разделе 'PHP', создана пользователем TheMazzahaka, 20 дек 2010.

  1. TopicStarter Overlay

    TheMazzahaka Пользователи

    Сообщения:
    223
    Лайки:
    76
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    J-Games Dev
    Собсно сабж,какие слова\символы нужно блокировать чтобы защититься от инъекции :D
  2. Kenpachi™ Who Crazy? Old school Пользователи Just a troll

    Сообщения:
    361
    Лайки:
    195
    Пол:
    Женский
    Репутация:
    0
    Команда:
    Solo
    Код:
    function db_mssql_check_xss () {
    $url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
    if ($url) {
    if ((strpos($url, '<') !== false) ||
    (strpos($url, '>') !== false) ||
    (strpos($url, '"') !== false) ||
    (strpos($url, '\'') !== false) ||
    (strpos($url, './') !== false) ||
    (strpos($url, '../') !== false) ||
    (strpos($url, '--') !== false) ||
    (strpos($url, '.php') !== false)
    )
    {
    die("Попытка взлома!");
    }
    }
    $url = html_entity_decode(urldecode($_SERVER['REQUEST_URI']));
    if ($url) {
    if ((strpos($url, '<') !== false) ||
    (strpos($url, '>') !== false) ||
    (strpos($url, '"') !== false) ||
    (strpos($url, '\'') !== false)
    )
    {
    die("Попытка взлома!");
    }
    }
    
    }
    
    /*
    Мощная функция обработки данных,
    защищает от XSS и SQL Injection
    поддержка защиты для MSSQL серверов
    */
    
    function office_secure($check_string)
    {
    $ret_string = $check_string;
    $ret_string = htmlspecialchars ($ret_string);
    $ret_string = strip_tags ($ret_string);
    $ret_string = trim ($ret_string);
    $ret_string = str_replace ('\\l', '', $ret_string);
    $ret_string = str_replace (' ', '', $ret_string);
    $ret_string  = str_replace("'", "", $ret_string );
    $ret_string  = str_replace("\"", "",$ret_string );
    $ret_string  = str_replace("--", "",$ret_string );
    $ret_string  = str_replace("#", "",$ret_string );
    $ret_string  = str_replace("$", "",$ret_string );
    $ret_string  = str_replace("%", "",$ret_string );
    $ret_string  = str_replace("^", "",$ret_string );
    $ret_string  = str_replace("&", "",$ret_string );
    $ret_string  = str_replace("(", "",$ret_string );
    $ret_string  = str_replace(")", "",$ret_string );
    $ret_string  = str_replace("=", "",$ret_string );
    $ret_string  = str_replace("+", "",$ret_string );
    $ret_string  = str_replace("", "",$ret_string );
    $ret_string  = str_replace(";", "",$ret_string );
    $ret_string  = str_replace(":", "",$ret_string );
    $ret_string  = str_replace("|", "",$ret_string );
    $ret_string  = str_replace("<", "",$ret_string );
    $ret_string  = str_replace(">", "",$ret_string );
    $ret_string  = str_replace("~", "",$ret_string );
    $ret_string  = str_replace("`", "",$ret_string );
    $ret_string  = str_replace("%20and%20", "",$ret_string );
    $ret_string = stripslashes ($ret_string);
    return $ret_string;
    }
    /*
    Обработка глобального POST массива
    защищает от XSS и SQL Injection
    поддержка защиты для MSSQL серверов
    */
    function check_sql_inject()
    {
    $badchars = array("--","truncate","tbl_","exec","call",";","'","*","/"," \ ","drop",
    "select","update","delete","where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9");
    foreach($_POST as $value)
    {
    foreach($badchars as $bad)
    {
    if(strstr(strtolower($value),$bad)<>FALSE)
    {
    die('Использованы недопустимые символы, <a href="'.$_SERVER['PHP_SELF'].'">вернитесь назад</a>');
    }
    }
    }
    }
    
    check_sql_inject();
    db_mssql_check_xss ();     
    1 человеку нравится это.
  3. TopicStarter Overlay

    TheMazzahaka Пользователи

    Сообщения:
    223
    Лайки:
    76
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    J-Games Dev
    Решил юзать регулярные выражение =)
Черновик сохранён Черновик удалён

Поделиться этой страницей