Пишу про AI, no-code и бизнес процессы.
@low_code - для связи
Видео гайды - https://www.youtube.com/@dirty_nocoder
Post #63
974
Вы спросите меня - а как же избежать возможного проникновения внутрь вашего Bubble приложения?
Давайте рассмотрим шаги, которые позволят обезопасить вас:
1. Для начала, отключим отображение спецификации. Для этого нужно зайти в Settings - API и убрать галочку с Hide Swagger API documentation access. Теперь, если добавить api/1.1/meta/swagger.json к URL, то вы получите JSON с ошибкой 404. Однако, это не закрывает доступ к открытым workflows и таблицам БД.
2. Чтобы перейти к разбору workflows нам нужно понять основные слои Bubble API:
- При подключении по API сначала происходит аутентификация - Bubble проверяет подлинность предоставленной вами информации.
Вы можете предоставить:
— bearer token админа, который создается в Settings - API и предоставляет неограниченные права администратора.
— токен пользователя, который можно получить использовав связку логин/пароль и action Log the user in в API workflows.
- Далее, в случае аутентификации под пользователем, система идентифицирует вас по предоставленному токену и определяет какой именно из пользователей вы.
- И в конце авторизирует - определяет какие права вы имеете согласно вашим параметрам. В этом случае права будут ограничены согласно созданным Privacy Rules в БД. Мы рассмотрим это подробнее в следующем посте про Data API и Privacy rules. Я лично не использовал такой метод, но он может быть полезен при разработке SaaS решений.
4. Перейдем к API workflows (один из видов backend workflows). По дефолту они создаются с включенным параметром Expose as public API workflow. Это значит, что они будут видны снаружи, но доступ к ним будет закрыт. Дернуть такие workflows можно изнутри Bubble или снаружи при помощи API токена. Если параметр выключен, вы не сможете дергать этот workflow даже с токеном админа и workflow перестанет быть виден (будет выдавать ошибку 404).
5. Чтобы открыть доступ для всех к публичному API workflow, вам нужно поставить галочку This workflow can be run without authentication. В данном случае любой человек в интернете сможет дернуть этот workflow и потратить capacity вашего приложения (да-да, вы можете скриптом на питоне положить пресловутый Betterlegal в течении часа). Насколько я это понял, данный параметр имеет смысл только при включенном Expose as public API workflow.
6. В случае, если вы авторизовались как пользователь (не админ), то ваши действия будут ограничены Privacy Rules из БД. Если для какого-то кейса вам потребуется игнорировать эти ограничения вы можете использовать параметр Ignore privacy rules when running the workflow.
Ставьте лайк и подписывайтесь - в следующий раз мы разберем Data API и Privacy Rules, от которых перейдем к созданию ролей.
Давайте рассмотрим шаги, которые позволят обезопасить вас:
1. Для начала, отключим отображение спецификации. Для этого нужно зайти в Settings - API и убрать галочку с Hide Swagger API documentation access. Теперь, если добавить api/1.1/meta/swagger.json к URL, то вы получите JSON с ошибкой 404. Однако, это не закрывает доступ к открытым workflows и таблицам БД.
2. Чтобы перейти к разбору workflows нам нужно понять основные слои Bubble API:
- При подключении по API сначала происходит аутентификация - Bubble проверяет подлинность предоставленной вами информации.
Вы можете предоставить:
— bearer token админа, который создается в Settings - API и предоставляет неограниченные права администратора.
— токен пользователя, который можно получить использовав связку логин/пароль и action Log the user in в API workflows.
- Далее, в случае аутентификации под пользователем, система идентифицирует вас по предоставленному токену и определяет какой именно из пользователей вы.
- И в конце авторизирует - определяет какие права вы имеете согласно вашим параметрам. В этом случае права будут ограничены согласно созданным Privacy Rules в БД. Мы рассмотрим это подробнее в следующем посте про Data API и Privacy rules. Я лично не использовал такой метод, но он может быть полезен при разработке SaaS решений.
4. Перейдем к API workflows (один из видов backend workflows). По дефолту они создаются с включенным параметром Expose as public API workflow. Это значит, что они будут видны снаружи, но доступ к ним будет закрыт. Дернуть такие workflows можно изнутри Bubble или снаружи при помощи API токена. Если параметр выключен, вы не сможете дергать этот workflow даже с токеном админа и workflow перестанет быть виден (будет выдавать ошибку 404).
5. Чтобы открыть доступ для всех к публичному API workflow, вам нужно поставить галочку This workflow can be run without authentication. В данном случае любой человек в интернете сможет дернуть этот workflow и потратить capacity вашего приложения (да-да, вы можете скриптом на питоне положить пресловутый Betterlegal в течении часа). Насколько я это понял, данный параметр имеет смысл только при включенном Expose as public API workflow.
6. В случае, если вы авторизовались как пользователь (не админ), то ваши действия будут ограничены Privacy Rules из БД. Если для какого-то кейса вам потребуется игнорировать эти ограничения вы можете использовать параметр Ignore privacy rules when running the workflow.
Ставьте лайк и подписывайтесь - в следующий раз мы разберем Data API и Privacy Rules, от которых перейдем к созданию ролей.
- 👍 17
- ❤ 2
