Комментарии 10
Выгляит очень любопытно =)
Я зашел на github и открыл первый попавшийся файл:
public static function removeViewedForField($table_id, $field_name, $Config) { $Config->getSql()->exec('delete from ' . static::table_viewed . ' where table_id=' . $table_id . ' AND field_name=\'' . $field_name . '\''); }
Этот код вызывается с параментрами напрямую из JSON input, как я понимаю... и если вместо $field_name там будет что-то с одинарной кавычкой, то всё - вся база данных, целиком, принадлежит атакующему через SQL Injection.
Мне кажется, так не стоит делать :) вы пробовали запускать Nessus или burp?
В это место данные приходят из под доступа админа в случае удаления поля из бд. Ему не надо морочится с атакой, у него и так полный доступ.
Нет, данные приходят из таблицы, при помещении в которую они были проверены. Json там исключительно в силу того, что данные в самой бд хранятся в jsonb-полях.
Крутая задумка. Как я понимаю это аналог directus / stapi. Но для меня ярким жирным стоп фактором является какой-то собственный язык разработки. Извините но нет. Зовите когда добавите поддержку js/python да хотя бы lua/lisp
есть n8n, там хотя бы на js пишется. Я так понимаю это одно и тоже?
Разработана для непрограммистов, т.е. для тех, кто не является профессиональным разработчиком, но имеет потребность в разработке собственной автоматизации
=: listSum(list: $list) + #fixed_costs
list: selectList(table: 'orders'; field: 'cost'; where: 'number' = $listNumbers)
listNumbers: selectList(table: 'orders'; field: 'number'; where: 'date' >= #first_day_months; where: 'orderStatus' = #final_status)
Интересно, а почему Вы выбрали синтаксис со спецсимволами, а не обычный SQL-подобный язык, как в том же lsFusion ?
Ведь SQL изначально и создавался, для обычных пользователей, а все эти символы обычному человеку непривычны.
Кроме того, интересны пояснения, что именно делают эти вычисления. А то вот я читаю, пример выше и не могу понять. Зачем делать двойной selectList, если там одна таблица, и сразу можно фильтрова ? Для примера, вот как бы это выглядело на lsFusion :
costSum 'Сумма заказов от даты по статусу' (DATE from, Status s) =
GROUP SUM cost(Order o) IF date(o) >= from AND status(o) = s;
Возможно, это субъективно, но вариант со словами, а не символами выглядит проще.
Кроме того, интересно - а в какой запрос скомпилируется описанное выше вычисление ?
Self-service, self-hosted, small-code база данных для внутренних разработок (есть open source версия + AI)