Нам нужно подать заявку, в которой верно следующее:
- Веб-страница использует AJAX для запроса данных с сервера.
- Спецификация данных (например, имя таблицы), запрошенных с сервера, не будет известна до времени выполнения.
- Конфигурация представления данных сама управляется данными и настраивается администратором.
- Должны поддерживаться обновления данных и вставки, а не только просмотры.
Создание прототипа было очень простым - мы могли передать соответствующую информацию (имя таблицы, набор изменений и т. Д.) Универсальной службе данных, которая просто выполняла то, что ей было сказано (используя JSON в качестве механизма хранения данных). Служба данных может выполнить базовую проверку параметров, чтобы гарантировать, что текущий пользователь может выполнить запрошенную операцию (чтение данных, вставка строки, чтение строки).
Проблема, с которой мы сталкиваемся сейчас, заключается в том, что мы делаем это безопасным способом производства, и идея передачи имен таблиц и столбцов пугающая. Все, что мы думаем о том, чтобы справиться с этим, превращается в доверие к клиенту каким-то значительным образом или, по-видимому, включает в себя существенную бухгалтерию на сервере. Например:
- Пользователь запрашивает страницу просмотра.
- Сервер записывает имя таблицы и сохраняет ее на стороне сервера с идентификатором запроса
- Сервер записывает имена столбцов и сохраняет их, заменяя их на «col1, col2» и т. Д., И сохраняет сопоставление с данными идентификатора запроса.
- Страница клиента отправляет идентификатор запроса в службу, которая ищет хранилище сервера по идентификатору
- Служба возвращает col1, col2 и т. Д.
Это бы сработало, мы думаем, но кажется очень грязным.
Кто-нибудь имеет опыт решения подобных проблем и может предложить решение?