Есть смысл?

Discussion in 'PHP' started by OnlyOn, 6 May 2011.

  1. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    при фильтрации с помощъю htmlspecialchars использовать фильтрацию кавычек?
     
  2. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    а как фтльтровать текст если надо сохранить его без изменений?
     
  3. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    ну можешь str replace моменять важные для взлома\ошибок символы поменять и всё.
     
  4. Fuckel

    Fuckel Banned

    Joined:
    16 Jan 2008
    Messages:
    274
    Likes Received:
    59
    Reputations:
    6
    C последующем занесением в БД, имеет смысл http://php.net/manual/ru/function.mysql-real-escape-string.php
     
  5. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    могут быть конфликты
     
  6. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Какие?

    Эти 2 функции совершенно разной направленности.
    htmlspecialchars разберется с хтмл тегами и защитит от xss
    Вторая от sql инъекции.

    То есть перед добавлением в базу достаточно проверить mysql_real_escape_string а уже при выводе с бд обрамлять htmlspecialchars

    Если тс говорит о выводе без изменений то при выводе будет xss при наличии хтмл (джаваскрипта). а при обработки htmlspecialchars при формировании страницы будет видно как надо а в коде будет &lp; такого вида.

    Можно сразу в базу вносить уже обработанные данные,но если это регистрация например, то при сравнии логина не забывать принимаемые данные обрабатывать так-же.

    Тоесть вопрос звучит как : "Чай попить или на рыбалку съезить". Тут от ситуации.Если хочешь пить то для этого не нужно ехать на рыбалку)Можно просто попить чай =)

    UPD :
    Объясню на всякий.
    Проверяя 2мя этими функциями результат зависит какую вы первой вызовете.Если mysql_real.... то она заэкранирует, а htmlspecial.... заэкранированные кывычки заменит и получится каша. А наоборот. Вот и смотрите по ситуации нужно одной или двумя. А mysql_real_es... экранирует не только кавычки но и такие перлы как \x00, \n, \r, \, ', " and \x1a
     
    #6 -=Zhenek=-, 6 May 2011
    Last edited: 6 May 2011
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    OnlyOn при фильтрации чего и где? Договорите, пожалуйста, фразу до конца. htmlspecialchars - ничего не фильтрует. Предварительно рекомендую ознакомиться с этой темой: https://forum.antichat.ru/thread30641.html

    XAMEHA, Sn@k3
    , не советуйте плохое
     
    _________________________
  8. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    OnlyOn, предположим ты не фильтруешь кавычки. И у тебя примерно такой код:
    PHP:
    echo 'document.write(\''.$test.'\');'
    Или такой:
    PHP:
    echo '<a href=\''.$link.'\'>Перейти</a>'
    То возможна вставка XXS. Во втором случае ссылку до занесения в базу конвертировать в urlencode.

    А в первом случае нужно экранирование кавычек. Однако всё же лучше их экранировать поскольку переменная в один прекрасный момент по недочёту окажется без фильтрации.

    Но htmlspecialchars не надо использовать для защиты от SQL-инъекций.
    Но всё же полезно в db хранить данные после обработки этой функции - ники, подписи, сообщения(Это только моё мнение).

    Так же не забывай об экранировании символов в LIKE...
     
    #8 randman, 6 May 2011
    Last edited: 6 May 2011