За последние 24 часа нас посетили 7300 программистов и 486 роботов. Сейчас ищут 119 программистов ...

preg_match или FILTER_VALIDATE?

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

  1. webog

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

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

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

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

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

    MouseZver Старожил

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

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

    С нами с:
    13 май 2014
    Сообщения:
    81
    Симпатии:
    1
    Да
    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
    Сообщения:
    5.277
    Симпатии:
    924
    Какую защиту? Валидация - это не защита.
     
    webog нравится это.
  6. romach

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

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

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

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

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

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

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

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

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

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

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

    mkramer Суперстар

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