За последние 24 часа нас посетили 22820 программистов и 1263 робота. Сейчас ищут 774 программиста ...

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

Тема в разделе "PHP и базы данных", создана пользователем tarabukinivan, 11 сен 2018.

  1. tarabukinivan

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

    С нами с:
    7 ноя 2016
    Сообщения:
    21
    Симпатии:
    0
    Доброе утро форумчане!
    В PDO запросы типа:
    Код (Text):
    1. INSERT INTO {$this->table} (login, name, email, activation, pass) VALUES(?,?,?,?,?)
    .
    Нужно ли обрабатывать входные данные login, name, email, activation, pass функциями mysql_real_escape_string, trim, htmlspecialchars, strip_tags или чем-то еще? Или PDO сам их обрабатывает?
     
  2. lastdays

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

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Подготовленные запросы не нужно фильтровать от инъекций дополнительно. Но запретить различные символы в логине, установить длину например, количество пробелов, все же придется самому..)
    htmlspecialchars не нужно вообще использовать в запросах, функция нужна только при выводе каких-либо данных на экран пользователя.

    По всем функциям можно почитать информацию на php.ru
     
    tarabukinivan нравится это.
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
  4. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    как говорили на этом форуме.. не помню кто правда, не нужно ограничивать пользователя длинной, символами и т.д. нужно просто правильно обработать инфу
     
  5. lastdays

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

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Там было сказано про пароль пользователя, а не логин, который может не вписываться в дизайн проекта, ну либо имена нечитаемые.. Кому нужны крякозябры ? да никому.
    А вообще, каждый д.. как он хочет
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    [​IMG]

    Вот из-за такой херни у меня ник везде то Fell-x27, то Fellx27, то Fell_x27, то Fellx277, блеять, потому что минимальную длину символов кто-то любит втыкать. Ажтрисьот.
     
    AlexProg нравится это.
  7. lastdays

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

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Ну это уже маразм, я не против двух пробелов, прочерков, тире.
    Всему есть предел же.
    Я имел ввиду, если логины не ограничивать никак, то выйдет ахинея такого плана "a -d -s -q=!-`'d;as' "
    Ну и кому это будет нужно? а пара звездочек и другие символы привычно для многих форумов, чатиков.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    вот есть у нас пользователь [vs]. к нему нельзя обратиться "по собачке" как @[vs]
    и кажется не получится цитировать как [ quote=[vs] ]
    так что некоторые фильтры имеют смысл.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    То есть это проблема именно ника, а не глуповатого парсера разметки форума? :)

    Тэк, тестирование показало, что наше ПО спотыкается о квадратные скобки. Что делать? Пофиксить баг? Ну нахрен, давайте квадратные скобки запретим! Отличное решение!

    Так чтоли? :)
     
    san4ez нравится это.
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    "
    Это проблема пользователей форума, не не "ника" или "парсера" :)

    Если бы я создавал этот движок, из двух полярных подходов я бы выбрал разумную середину. Я бы оставил достаточно большое пространство имен, но не беспредельно большое. Ибо стоимость обходных решений может быть больше выигрыша от беспонтового подыгрывания странным желаниям.
    --- Добавлено ---
    @Fell-x27 Как насчёт символа LF? Его тоже надо разрешить в имени? Ну и т.д. пофантазируй.
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Твоё имя (в отличие от пароля) используешь не только ты. Если б я был владелец, я не дал бы хyю-с-горы создавать неудобства другим пользователям. Ох уж это вечное балансирование между правами индивидуума и интересами сообщества - истина где-то посередине.
    --- Добавлено ---
    Это не имеет отношения к инъекциям. :) Это больше про здравый смысл и юзабилити. Есть много мест в реале где есть ограничения на имена. Нагуглил по-быстрому: https://www.fresher.ru/2015/09/27/zapreshhyonnye-imena-v-raznyx-stranax-mira/
     
    lastdays нравится это.