PWA(Progressive Web Apps)において、mBaaSを使うことでサーバサイドの面倒な実装を省いて、すぐにWebアプリケーションを開発できるようになります。ぜひ使って欲しいのですが、いくつか注意点があります。今回はそんなmBaaSをPWAで利用する上での注意点を紹介します。
キーが漏洩するリスク
PWAはJavaScriptを使います。そこに書かれたアプリケーションキー、クライアントキーは誰からでも見られる前提で考えなければなりません。そこで、以下のような対策を考えます。
キーを記述したファイルをFetch関数で取得する
コードの中にキーをハードコーディングするのではなく、インターネット接続がある時に都度取得するようにします。これはキーが漏洩する前提で、いつでも再生成するためです。もちろんこのファイルはキャッシュ対象外としておきます。オフラインの時にはそもそもmBaaSにアクセスできませんので、その場合はダミーのキーを使うようにすれば問題ないでしょう。
難読化する
キーが見られないよう難読化する工夫も考えられます。この場合はWebAssemblyを使います。なお、単純に文字列を記述してしまうと簡単に探せてしまいますので、可逆暗号化を使って埋め込んでおくのがお勧めです。
クラスを作られてしまうリスク
アプリからのクラス作成を無効にすることで、漏洩したキーを使って自由にクラスを作られてしまうリスクを回避できます。
フィールドを作られてしまうリスク
クラスのパーミッションを使ってフィールド追加を防止できます。
プッシュ通知を作られてしまうリスク
PWAの場合はプッシュ通知は使いませんので、管理画面で無効にしておいた方が良いでしょう。
もしアプリとデータを共有しており、プッシュ通知のデータがある場合にもSDKからの操作を無効にしておくことで、管理画面からのみプッシュ通知を作成できるように制御できます。
匿名データを使わない
悪意を持ったユーザにアクセスされないよう、ACLをきちんと設定しましょう。逆に悪意を持ったユーザが不正なデータを作成する場合もあります。この時にはACLを確認し、データに問題がないか確認しましょう。
まとめ
キーの漏洩はACLを適切に設定しておけば怖い問題ではありません。勝手にデータを改ざんされる、データを作られると言った問題は起こらないよう適切な設定を行ってください。