LINUX.ORG.RU

Веб-разработчик сказал, что прямые запросы SQL не получится приделать к REST API на сайте на webasyst.

 


1

1

Делаю тут обмен 1С с сайтом, сайт на webasyst, доступ через REST API. Я отвечаю за часть на 1С, но суть не в этом. В виду нехватки возможностей у этого апи, мной было предложено расширить немножко этот апи, и по сути сделать возможность отсылать на сайт SQL запросы. На что веб-разработчик ответил что прямые запросы не получится.

Его ответ «Прямые запросы делать не получится, каждое условие надо обрабатывать например использование операторов < > sum(), или join для select запросов. Чем сложнее запросы, тем больше условий необходимо предусматривать.»

И я вот что-то не понимаю. Я то думал, он в десяток строк на php организует перенаправление запроса сразу в MySql. А он же в ответ говорит, что так делать не будет, а будет изобретать SQL, да к тому же обрезанный.

Можете объяснить, зачем такое?

Ответ на: комментарий от pohepi

Это как? Сайтовая часть должна быть оберткой процедуры сайта? Масло маслянное. Можно подробней? Что мне сказать веб-разработчику?

victor79
() автор топика
Ответ на: комментарий от victor79

оберткой хранимой процедуры в базе. которая уже имеет нормальный интерфейс и права доступа, а внутри себя содержит все нужные джоины. при необходимости что-то менять — ты идешь в базу мимо веб-разработчика и меняешь процедуру, SQL-то ты и без него знаешь.

pohepi
()
Ответ на: комментарий от no-such-file

безопасности

Ендпойнты для непубличного апи в любом случае придётся аутенфицировать. Да и БД с правильно настроенными правами доступа побезопаснее будет типичного сайта, у которого к этой БД рутовый доступ. А кто попало запрос всё равно не пришлёт т.к. см. выше, ендпойнт спрашивает пароль и может сверяет IP клиента с вайтлистом.

надёжности

Если из связки 1С - Сайт - БД (практически) убрать сайт, то количество движущихся частей уменьшится и система будет надёжнее :P

PolarFox ★★★★★
()

Класс) Надеюсь, ты просто решил пошутить

dimuska139 ★★
()

для этого есть GraphQL. Ты на его синтаксисе составляешь запросы, а разработчик расставляет, куда тебе можно лезть.

alexmaru
()

Кто пустил одинэсника в техраздел? Модераторы, ау.

anonymous
()

Если ты работаешь с SQL запросами напрямую, то найди способ подключиться к MySQL напрямую. И твори там что хочешь. А если сделаешь в тайне, то в случае факапа можно будет свалить на веб-разработчика.

dicos ★★
()

сделать возможность отсылать на сайт SQL запросы

Прям сейчас иди и извинись перед парнем и всеми за такое предложение. Скажи что был сам не свой. Если бы тот парень был как ты и впихал это. То на следующей неделе Вася из 9го Б нагнул бы вас всех, а в записях клиентов, да и вообще всех записях появились бы поля «ДiReКтор»,«Pidorissimno». А на главной странице внутреннего сайта крутилась бы порнуха.

anonymous
()

Ага, тогда любая АпельсиноваяТрихоножка понапихала бы вам в базы бекапы своих игровых сохранений :D А НеистоваяСосисочка бы в ваших базах начала хранить свою музыкальную коллекцию, причём сделала бы ещё и сайт на юкоз где можно было бы их скачать. А вы бы радовались пользовательскому трафику Ж)

anonymous
()
Ответ на: комментарий от drsm

плюсую, 1С вообще не нужен есть онлайновая бухгалтерия предприятия и кадры

XoFfiCEr ★★☆☆
()

Сначала разберитесь с ответственностью, вопросы уровня кто виноват, что лег сайт, или кто может менять что-то в 1с. После того, как будет ясно, что на ком, и риски будут закрыты (например к 1с нет доступа, и есть за это ответственный; или другая схема), и руководство будет в курсе, то постановите сделать на сайте роуту висящую чисто под впн, защищенную апикеем, которая будет вызываться из 1с, который будет брать апикей из константы. Также на сайте стоит сделать примитивную защиту от дурака, по типу случайных drop table, delete from без where и т.п. И наконец обеспечить со стороны 1с, что юзеринпут не попадет в sql без proper escaping. Подразумевается, что sql будет хардкодиться 1с, либо генериться в ней по четким правилам, без говняка.

По треду:

надо орм иначе джойны положат дудос

Так и через орм можно дудос джойнами устроить.

вон из профессии

Профессия это когда ты решаешь задачи в ограниченном бюджете и сроках, а не в вакууме. Иногда надо срезать углы, при этом их слегка зашкуривая, чтобы случайно не порезаться работая внутри, и ставя забор чтобы не лезли снаружи. Некоторые вопросы решаются на управленческом уровне после оценки рисков, и техническое «айяйяй плоха» может не иметь значения. Не надо решать за других, если профиты не падают в ваш карман. Достаточно посмотреть на устройство апи и клиентов популярных финансовых сайтов, чтобы понять, от кого они отказались - от виктора или от умников в треде, чтобы выкатить решение год назад, а не к 2030, когда тема уже 300 раз сдуется.

———

Если не прокатит по каким-то критериям, как вариант можно поднять рид-онли лайв-зеркало бд сайта в том же облаке, чтобы быстро синкалось, и нагибать уже его, без риска для основного хоста. Даже если когда-то ляжет, то просто рестартнете его и дождетесь консистенси. Наверняка есть готовые решения.

anonymous
()

будете ржать, но клинический дегенерат, который додумался sql на клиенте формировать сейчас сеньор пяти пядей во льу и ездит по петушинным сходкам на всякие митапы, выступая как спикер.

tz4678 ★★
()

Веб-разработчик дело говорит, не делай так, если тебе нужен SQL, то и подключайся к базе напрямую, пихать его в API без обработки это костыли которые потом больно кому-нибудь прилетят (безопасность/производительность).
Но проковыривая SQL помни, что база не самый удобный интерфейс между разными софтинами, а лучший вариант это допиливание API до нужного состояния.

pru-mike ★★
()
Ответ на: комментарий от hobbit

разграничение прав не защитит от DoS атак на сервер БД. Можно в SQL передать тяжелый select. И что делать если нужна не только выборка данных, но и редактирование? Плюс становится возможна эксплуатация уязвимостей в самой СУБД через ошибки в парсинге запросов, например

cobold ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.