関連のツールの紹介、使い方などをやさしく説明しています。Tumblrこんにちは!今回は、セキュリティ等の観点からBubbleで気を付けたいことをご紹介する「Bubbleのちょっと怖い話」シリーズの第二弾です。Connectorを取り上げます。ConnectorはBubbleで構築したアプリの幅を広げるために重要な存在ですよね。それぞれあまり知られていない注意点があるので、今回はそれらを中心にご紹介します。Workflowのセキュリティの注意点をご紹介します。Workflow」という2つの言葉に出くわすことと思います。この2つの違いをまずは整理しておきましょう。Workflow...アプリ内のスケジュール設定や外部アプリからの呼び出しで実行できる、Bubbleの組み込みAPI。全てがサーバーサイドで実行され、アプリを閉じていても実行できます。Workflowタブで作成します。Workflowタブで作成できる様々なWorkflowを指します。Triggerなどがあります。workflows」をチェックして有効化する必要があります。Workflowタブが表示されるのでクリックして開きます。workflow」をクリックして作成します。Workflowを作成する際に気を付けるべき設定項目は3点あります。workflow」です。チェックするとこのBubbleエディタの外部からのAPIの呼び出しを許可することになります。別のBubbleアプリや外部サービスから呼び出したい場合にチェックします。Workflowをこのアプリ内でしか使わない場合はチェックする必要はありません。authentication」です。チェックすると、このWorkflowを認証なしで実行できるようになります。通常は管理者APIトークンを介して実行できるように作成しますが、特にそのような設定をしていない場合誰でも認証されることなく実行できるようになります。実行時にユーザーのログインやトークンが必要な場合はこちらのチェックを外します。認証に失敗したらAPIを終了します。workflow」です。Typeごとに設定したPrivacyルールを無視して実行し、誰でもデータ取り扱えることになります。設定したPrivacyルールを適用して実行したい場合はチェックを外します。Workflowをアプリに実装するにあたって注意するべきことがあります。Workflowの情報はアプリの/metaというページで閲覧できるということです。Bubbleで作成したアプリは全てhttps://BUBBLEAPPNAME.bubbleapps.io/api/1.1/metaというページを持っています。workflow」をチェックしたものの情報が閲覧できます。Workflowのエンドポイント名、パラメータ、認証の有無などの設定内容が閲覧できますね。注意すべき点はauth_necessaryです。authentication」の設定有無が確認できます。trueとなっており、認証不要と設定したことがバレバレです。trueが認証不要だということが分かる人は、そのAPIを外部から自由に呼び出せてしまいます。typeやアプリの基本情報(アプリ名、ファビコンの格納先など)などが閲覧できます。Workflowを呼び出せるのか検証してみましょう。APIを呼び出してみます。Workflowを作成します。authentication」をチェックすることです(今回は検証用で認証なしで実行するため)。typeにデータを作成するActionを作成します。Postmanで呼び出す設定をします。下記を参考に設定してください。100設定できたら「Send」ボタンをクリックします。"success"が表示されます。APIが正常に実行できたようです。typeを確認します。Postmanで設定した通りのnameとnoで保存されています。Workflowは外部から呼び出すことができることが確認できました。in」アクションを実行してトークンを発行することができます。詳しくは以下の記事も併せてご参考ください。Connetorのセキュリティの注意点についてご紹介します。ConnetorはBubbleの純正プラグインで、外部サービスやアプリにリクエストを送信するものです。接続できるアプリケーションに制限はほぼありません。callを設定します。パラメータには動的値を設定することもできます。Connectorを使用するうえでのセキュリティポイントとして、特に重要な点をご紹介します。1つ目は、Parameterの公開設定です。callで使うパラメータは、「Private」項目で公開と非公開の設定ができます。チェックするとパラメータの値を保護でき、チェックしない(Public)と外部から丸見えになります。callは公開されているという点です。privateに設定したパラメータの値は公開されませんが、APIエンドポイントやInitializeの内容(リクエストの中身・結果)は公開状態になります。機密情報を使ってInitializeをする場合は特に注意が必要です。Connectorの情報がどのように公開されているのかを確認します。Connectorをインストールします。callを作成します。callを作成しました。2つ目のパラメータtestは検証用に作成したものなので、APIの実行には不要です。作成できたら「Initialize」をクリックします。ここまで出来たらアプリをPreview表示して、開発ツールを起動(Fnキー+F12キー)します。Console(コンソール)タブを開き、console.log(app)と入力してEnterキーをクリックします。下部に出力内容がトグル付きで表示されるので、トグルをクリックします。apiconnector2:のトグルをクリックして内容を表示します。Connectorに関する情報が出力されます。Nameが出力されています。1行目のAPIが先ほど作成したAPIです。1行目のトグルをどんどん開いて、設定がどのように反映されているか確認します。Connectorについて出力される情報の全貌です。チェックしていただきたいのが1と2の部分です。callのパラメータが表示されています。zipcodeとtest(比較用で作成)を比較すると分かるように、Private設定をPrivateに設定したパラメータ名は表示されていません。data)がここに出力されています。ちなみに、Initialize後に値の入力欄を空欄にしておくとここでは出力されません。2の部分では、Initializeでパラメータに設定した値と応答内容が出力されています。出力内容全文は下記の通りです。Initializeの応答と、最後の部分ではInitializeのリクエストデータが確認できますね。APIの内容によってはInitilalizeでパラメータの値に個人情報や機密情報を使用することもあるので、ここで出力されてしまうということは念のため認識しておいてくださいね。ちなみに、ここでは最新のInitializeの内容・応答が出力されるので、公開したくない情報はリリース前にサンプルデータで上書きして閲覧できないようにしておくのがおすすめです。Connectorのセキュリティ上の注意点をご紹介しました。Workflowについては、セキュリティ項目は必要なときのみ有効化するということを覚えておいてください。Connetorについては、InitialaizeなどのPrivate設定にしていない/できない基本的な情報は開発ツールで閲覧可能だということに気を付けてくださいね。個別指導などを行っています。)引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。