За последние 24 часа нас посетили 56568 программистов и 1780 роботов. Сейчас ищет 941 программист ...

на скоко фильтр защищает?

Тема в разделе "PHP для новичков", создана пользователем MAXiDROM, 18 фев 2008.

  1. MAXiDROM

    MAXiDROM Активный пользователь

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    Код (Text):
    1.  
    2. <?
    3. function GET($GET)
    4. {
    5.     $GET=htmlspecialchars($GET);
    6.     $GET=preg_replace('/[^a-z0-9_]/', '', $GET);
    7.     return $GET;
    8. }
    9.  
    10. $GET_s=GET($_GET['s']);
    11. $order=GET($_GET['order']);
    12. $top_limit=GET($_GET['top_limit ']);
    13.  
    14. $data=mysql_query("SELECT * FROM table WHERE server='$GET_s' ORDER BY $order LIMIT $top_limit ");
    пример limit может быть (100) (10,100) он фильтрует
    а вот иньекции и любые коммнады <$cmd ....> примерно так, наскоко ета функция защищает?
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    MAXiDROM
    Как поведет себя с urlencode? =)
    Опять же, пробел (%20) не пройдет
    Да и использовать регулярку для фильтрации _GET запросов... )
     
  3. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    капец.. для фильтрации в mysql есть специализированая функция, которая отфильтрует все нехорошие символы которые не понравятся данной версии мускла.
     
  4. MAXiDROM

    MAXiDROM Активный пользователь

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    а можно ссылки на мануалы, если есть русские.

    я вот думаю сделать

    Код (Text):
    1.  
    2. $ip=getenv("REMOTE_ADDR");
    3. $URL=getenv("HTTP_REFERER");
    4. $UNION=фильтр('UNION', '', $URL);
    5. if($UNION)
    6. {
    7.     запрос на добавления ip в базу банов (пример мускул)
    8. }
    на скоко ето будет рентабильно?
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    MAXiDROM, у тебя фобии? Для каждого типа данных свои методы проверки, в зависимости о того, куда эти данные пойдут.
     
  6. MAXiDROM

    MAXiDROM Активный пользователь

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    охото сделать одну функцию, но расширенную.
    и применять на каждой странице, уже не думая что есть дырка в GET или POST.
     
  7. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    MAXiDROM
    У меня для проверки: htmlspecialchars(trim($data))
    И для данных (не числовых) которые использую в SQL - mysql_real_escape_string.
    Все. Пока жалоб нету.