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

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

本贴由 TheMazzahaka2010-12-20 发布. 版块名称: PHP

  1. TopicStarter Overlay

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

    注册日期:
    2010-05-22
    帖子:
    223
    支持:
    76
    性别:
    Репутация:
    0
    Команда:
    J-Games Dev
    Собсно сабж,какие слова\символы нужно блокировать чтобы защититься от инъекции :D
  2. Kenpachi™ Who Crazy? Old school Пользователи Just a troll

    注册日期:
    2010-07-03
    帖子:
    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 Пользователи

    注册日期:
    2010-05-22
    帖子:
    223
    支持:
    76
    性别:
    Репутация:
    0
    Команда:
    J-Games Dev
    Решил юзать регулярные выражение =)
Черновик сохранён Черновик удалён

分享此页面