За последние 24 часа нас посетил 22641 программист и 1267 роботов. Сейчас ищут 747 программистов ...

preg_match или FILTER_VALIDATE?

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

  1. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Доброго времени суток!

    Вопрос очень прост: preg_match или FILTER_VALIDATE?
    Не так давно поспорил с товарищем... У себя на сайте использую FILTER_VALIDATE (сылка, строка и т.д.) проблем не возникало. Но товарищ обошел эту защиту. FILTER_VALIDATE лучше не использовать?
    Выскажите свое мнение, пожалуйста.
     
  2. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    Расскажи, как он обошёл. Вангую, что он сделал какой-либо финт, который валидатор в принципе не должен обрабатывать, а твоему другу кажется, что должен. Даже есть подозрение, что это касается FILTER_VALIDATE_EMAIL
     
    AlexProg нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    а она была?
     
    AlexProg нравится это.
  4. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Да
    PHP:
    1. $login1 = filter_input(INPUT_POST, 'reg_login', FILTER_SANITIZE_STRING);
    2.  
    3.                 $optionsLogin = array(
    4.                                 'options' => array(
    5.                                                 'regexp' => '/^[a-zA-Z0-9]{5,20}/'
    6.                                                 )
    7.                                 );
    8.                 $login = filter_var($login1, FILTER_VALIDATE_REGEXP, $optionsLogin);
    Мне тоже интересно, он не колется. Намекает на filter_var($url, FILTER_VALIDATE_URL)
     
  5. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Какую защиту? Валидация - это не защита.
     
    AlexProg нравится это.
  6. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Нужен конкретный пример, потому что foo@bar это валидный email и будет работать, но валидацию большинства сайтов он пройдет. Потому:
     
    acho и AlexProg нравится это.
  7. Emilien

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

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Как минимум первые пять символов строки должны быть цифрой или латинской буквой, а дальше в строке может быть абсолютно любое количество любых символов т.к. в шаблоне нет $
     
    AlexProg нравится это.
  8. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Фак! Да, это $ же конец строки. Ну вот уже ближе к истине.

    Как защищаете вы свой код?
     
  9. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    160
    Симпатии:
    35
    держу на флешке, в банковской ячейке.
     
    AlexProg нравится это.
  10. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Не флудим, по делу пожалуйста :)
     
  11. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Просто это два отдельных понятия. Использование подготовленных выражений - защита от sql-инъекций, использование htmlspecialchars при выводе - защита от XSS, а валидация e-mail - это валидация e-mail, оно не защищает, оно просто проверяет введённую информацию на соответствие правилам