За последние 24 часа нас посетили 20765 программистов и 1135 роботов. Сейчас ищут 857 программистов ...

Проверка перед вставкой в запрос с помощью Регулярный выражений

Тема в разделе "Регулярные выражения", создана пользователем miltorg, 8 сен 2019.

  1. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    [1-9]\\d{0,9}

    Ок. Допустим двойной слеш - это описка. Допустим:

    [1-9]\d{0,9}

    Что у вас написано:
    Одна любая цифра + цифра повторённая 0 или 9 раз

    Это всё эквивалентно \d{1,10}

    И самое главное. Зачем вам это? Я ищу не цифру. А вы ищите цифру.
    --- Добавлено ---
    Космические летательные аппараты и разгонные блоки.
    Военная - АВ.
    --- Добавлено ---
    Не уходите от темы. Мы рассматриваем мой код с точки зрения БЕЗОПАСНОСТИ. Безопасности.
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    понятно. забудьте всё чему вас там учили. в создании сайтов вам это только мешает.
    тут всё работает подругому.
    слушайте, людей которые учились именно на программистов, в профильных вузах.
    --- Добавлено ---
    самая безопасная валидация та - которая вообще ничего не пропустит дальше.
    дарю вам эту идею, хотя она стоит немалых денег.
    используйте. и ваши сайты станут совершенно безопасными.
    --- Добавлено ---
    кстати. а что опасного в имени Анна-Мария?
    почему вы так сильно хотите от него защититься?
     
  3. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Не уходите от темы. Мы рассматриваем мой код с точки зрения БЕЗОПАСНОСТИ. Безопасности.
    Да-да. Только мы там программировали каждый год начиная с 1984 года. Курсовые. Зачёты. Экзамен.
    Диплом - я прочность ракеты писал на Бейсике.
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.787
    Симпатии:
    646
    Это не описка, а копи-паст.

    Ну-ну. Я ж говорю: «нИ Асилил ты это». Можно не отвечать. Развивайся дальше. Я найду, куда потратить свое время с большей пользой.
     
  5. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Я обязательно рассмотрю это имя. Но сейчас мы рассматриваем мой код с точки зрения безопасности.
    Что такого опасного чтоб сказать правду. Что мой код безопасен. Что опасного? Что?
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    я тоже в школе писал алгоритмы для черепашки которая должна дойти до выхода. этот опыт теперь очень сильно помогает мне в програмировании сайтов.
     
  7. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Да-да и пожалуйста подальше от программирования.
    --- Добавлено ---
    Ржачка! алгоритм черепашки и прочностной расчёт ракеты. Вы точно в техническом вузе учились?
     
  8. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    начнем с того что он работает неправильно. ибо почемуто непропускает вполне допустимые в русском языке имена и фамилии.
    раз он работает неправильно, значит рано оценивать его безопасность.

    как я уже сказал выше. код который вообще ничего не будет пропускать - самый безопасный. так давайте все его использовать. это же так безопасно. согласны?
    --- Добавлено ---
    обычно, те кто умеют рассчитывать прочность ракеты, используют для валидации имени другую регулярку.
     
  9. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Вы меня не хотите услышать? Я спрашиваю одно:
    Исходный код безопасен или нет
    Исходный код. Исходный код.

    Только это.
     
  10. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Сломал:
    Код (Text):
    1. $id = '';
    Жду три евро гонорара сюда.

    Безопасен, но работает не совсем по ТЗ "$id - это целое число".

    Как и говорили, провалидировать число - это самое лёгкое. Все остальные валидации намного сложнее и более подвержены ошибкам.
     
  11. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Так сломал или безопасен?
    Почему вы все боитесь сказать правду?

    Я не могу приводить более сложные и интересные для меня вещи пока мы не закончим с этим.
    Если этот код не безопасен - зачем тогда усложнять?
    --- Добавлено ---
    При пустом id ничего не сломается - просто выдаст ошибку обращения к базе
     
  12. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    в игнор
     
  13. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Сломал логику сайта. Записал пустые имя и фамилию в БД.

    Почему боимся? Напрямую говорим, что ваша примитивная валидация не пропускает половину людей и безвозвратно портит контент. А более сложную вряд ли осилите.
     
  14. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    $id - это не фамилия. Вы правда не понимаете?
    --- Добавлено ---
    Вы считаете что, например фамилия, это обязательное поле?
    Ну тогда это решается ещё на уровне HTML и прописывается в Базе - так что никакого пустого поля не получиться.
    Вы правда это не понимаете?
    --- Добавлено ---
    Ок. Хоть одно поле должно быть обязательным. Поэтому:
    1. В HTML - required
    2. В базу - NOT NULL

    Как видите я ничего не тронул в своём первоначальном коде.
     
  15. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    И id в базе всегда прописываю - что не больше 11 цифр
     
  16. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Дальше в скрипте у вас $imja и $familija, которые вы проверяете через \W. Их сломал.

    Я понимаю, что required в браузере не поможет и NOT NULL в базе не ругнётся.

    Вижу, что код надёжнее не стал и я также через ваш первоначальный код вставлю пустое имя.
     
  17. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Ок. Я сейчас вытащу всё в онлайн. И разрешаю всем ломать.
    Мне это интересно.
     
  18. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Ждём форму заявки с полями:

    Имя
    Фамилия
    Email
    Телефон
    Адрес
    Текст заявки
    Предполагаемая дата исполнения
     
  19. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    Динозавр разжигающий огонь силой трением и временем, как в 2к19 одним нажатием ( кремний ) и готово.

    Пока топчишься на одном месте, другие уже нейросетки для себя написали.
     
    Dron-Boy нравится это.
  20. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
  21. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Выложил:
    http://prohorov-andrej.ru/u
    --- Добавлено ---
    Пустые поля - проходят. - Забыл прописать в базе?
    --- Добавлено ---
    А почему собственно запрет на пустые поля в данном случае?
    Не нужен тут никакой запрет на пустые поля. Не нужен.
    --- Добавлено ---
    Покажите пожалуйста скриншот.
    --- Добавлено ---
    Именно скиншот того, что что-то не так. Скриншот пустых полей на странице - это не поломка.
     
  22. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    и ответ на вопрос. почему Автор так боится имени Анна-Мария ?
    это имя ломает вашу базу? и почему ваша форма пускает в качестве Имени подчеркивание и цифры? можете привести примеры таких имен или фамилий, с подчеркиванием и цифрами? или \W просто от балды там используется, или из за незнания что оно означает?
     
  23. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Не перескакивайте.
    Как только вы мне напишите что моя первоначальная форма безопасна - так сразу будем продолжать.
    Уверяю вас, я заинтересован закончить Текстовым полем. - А там уж точно будут ваши чёрточки.
    А пока, на 2 страницах, вы все мнётесь, жмётесь, пыжитесь, выдумываете, придумываете.
    --- Добавлено ---
    А вы правда не понимаете?
    А моя версия такая:
    \w - это как раз рекомендованный набор символов для ника.
    Мне это кажется очень очевидным.
    Неужели вам не кажется?
     
  24. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    НИК и ФАМИЛИЯ - это какбы разные вещи. не?
     
  25. miltorg

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

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Именно.
    \w - придумывалась под ник. Вы правда это не понимаете?
    --- Добавлено ---
    Или вы спрашиваете почему я это применил к Фамилии?
    Да потому, что я писал тогда, как мне казалось, никому не важный и не нужный пример. Написал - первое что пришло в голову.
    Там вопрос был вообще не о том и не про то.
    А вот сейчас я пытаюсь писать про то, но вы все стойко упираетесь, не желая признать безопасность моего первоначального примера хоть все уже, я надеюсь, отлично поняли что код безопасен.
    Но, если всё-таки мой первоначальный код не безопасен - продолжать нет никакого смысла.