Я работаю над общедоступным веб-проектом, который частично будет работать на сервере OLAP. Я хотел сравнить несколько способов сделать это с точки зрения безопасности:
Моя первоначальная идея состояла в том, чтобы передать некоторое представление намерения пользователя на веб-сервер через AJAX, сделать так, чтобы веб-сервер выполнял много проверок ввода, и создать соответствующее выражение MDX для передачи на сервер OLAP и, наконец, прокси-сервер. результаты OLAP возвращаются в браузер. (Тангенциально, это, кажется, подход, принятый jpivot ; например, я просто щелкнул, чтобы развернуть таблицу в примере jpivot, и то, что было отправлено на сервер, было не MDX, а просто x- www-form-urlencoded string "wcf65768426.x = 3 & wcf65768426.y = 3".)
В отличие от этого, проект xmla4js , похоже, основан на открытии порта брандмауэра и демонстрации вашего OLAP-сервера миру (или, по крайней мере, вашим конкретным клиентам) через XML / A, написание MDX запросы в клиентском javascript, и браузер напрямую подключается к серверу OLAP.
Моя внутренняя реакция заключается в том, что я довольно подозрительно отношусь ко второму подходу. Кажется, предполагается, что ничего плохого не произойдет, если кто-то выполнит произвольные операторы MDX на моем OLAP-сервере. Я еще не изучал особенно продвинутый MDX, но для меня не сразу очевидно, что это безрисковое предложение. По крайней мере, кто-то может запустить несколько очень дорогих запросов или загрузить большую часть своего набора данных, чем вы надеялись легко сделать доступной для людей. Это не то, что люди обычно делают с SQL-серверами, и я изначально склонен думать, что те же самые причины предполагают, что вы не должны делать это и с OLAP-серверами.
Но я также хотел бы предположить, что люди, стоящие за xmla4js, имели в виду некоторые варианты использования, которые не были сумасшедшими угрозами безопасности. И я думаю, что потенциально я мог бы думать об этом слишком осторожно.
Все более опытные люди OLAP хотят прокомментировать мудрость, позволяющую людям напрямую стучать на ваш сервер OLAP, например, через XML / A?