evalidate: безопасная обработка пользовательских выражений
Зачем нужно
Различная фильтрация есть везде. Например, файрволл netfilter (iptables) имеет свой синтаксис для описания пакетов. В файле .htaccess апача свой язык, как определять, кому давать доступ к каталогу, кому нет. В СУБД свой очень мощный язык (SQL WHERE ...) для фильтрации записей. В почтовых программах (thunderbird, gmail) — свой интерфейс описания фильтров, в соответствии с которыми письма будут раскидываться по папкам.
И везде — свой велосипед.
Для бухгалтерской программы вам может быть удобно позволить пользователю выбрать, кому будет повышена зарплата (все женщины, а так же мужчины возрастом от 25 до 32 лет, либо же до 50 лет если у мужчины имя Вася). И каждому подходящему повысить по пользовательскому выражению ( + 2000 рублей + 20% от прежней зарплаты + по 1000 рублей за каждый год стажа)
Для интернет-магазина (или его админки) — найти все ноутбуки, с памятью от 4 до 8 Gb, которых на складе более 3 штук, но не Acer, или даже Acer, если стоят меньше 30 000 рублей.
Конечно, можно присобачить свою сложную систему фильтров и критериев, сделать для них веб-интерфейс, но проще было бы все сделать в пару строк?
src="(RAM>=4 and RAM3 and not brand=='Acer') or (brand=='Acer' and price
Различная фильтрация есть везде. Например, файрволл netfilter (iptables) имеет свой синтаксис для описания пакетов. В файле .htaccess апача свой язык, как определять, кому давать доступ к каталогу, кому нет. В СУБД свой очень мощный язык (SQL WHERE ...) для фильтрации записей. В почтовых программах (thunderbird, gmail) — свой интерфейс описания фильтров, в соответствии с которыми письма будут раскидываться по папкам.
И везде — свой велосипед.
Для бухгалтерской программы вам может быть удобно позволить пользователю выбрать, кому будет повышена зарплата (все женщины, а так же мужчины возрастом от 25 до 32 лет, либо же до 50 лет если у мужчины имя Вася). И каждому подходящему повысить по пользовательскому выражению ( + 2000 рублей + 20% от прежней зарплаты + по 1000 рублей за каждый год стажа)
Для интернет-магазина (или его админки) — найти все ноутбуки, с памятью от 4 до 8 Gb, которых на складе более 3 штук, но не Acer, или даже Acer, если стоят меньше 30 000 рублей.
Конечно, можно присобачить свою сложную систему фильтров и критериев, сделать для них веб-интерфейс, но проще было бы все сделать в пару строк?
src="(RAM>=4 and RAM3 and not brand=='Acer') or (brand=='Acer' and price
Похожие новости
- Независимый fashion-ритейл планирует нарастить присутствие в онлайн-каналах в ближайшие 3 года
- Креативная революция: как ИИ переписывает учебники для дизайнеров
- Мусорные клики: Яндекс может избавить нас от них, но нет
- Российское digital-агентство создало первый новостной канал, полностью сгенерированный ИИ
- ВМК МГУ имени М.В. Ломоносова: Исследователи ВМК МГУ предложили бенчмарк для оценки суперразрешения видео при сжатии
- О май гайд, это же ToV
- С 10 июля 2025 года Telegram Ads отменил обязательный минимальный расход для запуска премиальных рекламных форматов
- Spark_news: 21% россиян испытывают тоску по работе во время отпуска
- AlinaTen: Meta приобрела стартап, специализирующийся на клонировании голосов
- [Перевод] «Призраки в коммитах 2»: пылесосим историю Git в поиске утекших секретов