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
Похожие новости
- Погружаемся в PEB. DLL Spoofing
- Децентрализованное доверие. 1. Гипотеза
- Боли и решения: какие трудности возникают при найме коммуникаторов
- Большие языковые модели в финтехе: можно ли доверять им данные
- Spark_news: Каждый четвертый предприниматель не доволен своим окружением
- Редакция Spark.ru: Не прогори. Как найти китайского поставщика для работы на российском рынке?
- Finpeople: «Лента» объявляет о росте выручки на 62,1% и увеличении рентабельности по EBITDA на 434 б.п. в 1 квартале 2024 года
- Руслан Галифанов: Трезвый взгляд на Америку как место для жизни и бизнеса
- Путеводитель по Docker. От основ контейнеризации до создания собственного докера
- Чтение на выходные: «Искусство быть невидимым. Как сохранить приватность в эпоху Big Data» Кевина Митника