Какие есть минусы у htmlentities?

Discussion in 'PHP' started by strecher, 15 May 2009.

Thread Status:
Not open for further replies.
  1. strecher

    strecher New Member

    Joined:
    22 Nov 2005
    Messages:
    13
    Likes Received:
    2
    Reputations:
    0
    Есть ли какие либо проблемы с использованием данного кода для фильтрации запросов? Если да, то какие. Использую PHP + MySQL.
    В данный момент это самый безопасный (инхо) метод фильтрации запросов который я нашёл. Инклуд в начало каждого скрипта который обрабатывает запросы.
    Спасибо.

    PHP:
    function antixss($str) {
    $str htmlentities($strENT_QUOTES);
    return 
    $str;
    }

    foreach(
    $_POST as $name => $value) {
    $_POST[$name] = antixss($value);}
    foreach(
    $_GET as $name => $value) {
    $_GET[$name] = antixss($value);}
    P.S. Если минусов нет, то почему все не пользуются этой функцией?
     
  2. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    самое банальное, если у тебя запрос типа:
    Code:
    SELECT * from table where id=$_GET['id']
    
    то толку от твоей функции ноль

    А также если в скрипте юзаются бинарно зависимые функции, она не спасет. Например инклуд (на %00 не отреагирует)
     
    #2 Dimi4, 15 May 2009
    Last edited: 15 May 2009
  3. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    лучше уж тогда htmlspecialchars
     
    1 person likes this.
  4. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    От хсс тоже не всегда спасет. Представим что у тебя скрипт обрабатывает этой функцией бб коды.
    например:
    Code:
    [colo r=$_GET['color']]$_GET['text'][/ color]
    превращается в
    Code:
    <font style="color: $_GET['color']">$_GET['text']</font>
    Вот хсс:
    Code:
    [colo r=green; background:url\(javascript:eval(alert(1))]qe[/ color]
    будет:
    Code:
    <font style="color: green; background:url\(javascript:eval(alert(1)))">qe</font>
    
     
  5. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Потому что это бред полный.
    Ты портишь входящие данные.

    Данные портить нельзя. Данные надо правильно использовать.
     
Thread Status:
Not open for further replies.