FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

mBaaSをセキュアに使う方法

f:id:mbaasdevrel:20190318155218p:plain

mBaaSはモバイルアプリからの利用を前提としているため、アクセス元を制限することはできません。一般的なバックエンドシステム(データベースなど)のようにLAN内部からしか使えないといった利用には向きません。

そんなmBaaSをセキュアに利用するためのTipsを幾つか紹介します。

ACLを設定しましょう

ログインしていないユーザが閲覧、編集さらに削除までできるオープンなデータは作らないようにしましょう。最低でも匿名認証を利用し、作成した会員を何らかのロール(Memberなど)に加えます。そのMemberに対してデータを公開設定すると良いでしょう。

自分のデータを共有する場合も、全体に読み込み権限を与えるのではなく、このMemberに対して付与するの方が安全でしょう。

クラスのパーミッションを設定しましょう

クラスでは下記の処理についてパーミッションが設定できます。

  • 読み込み
  • 検索
  • 作成
  • 更新
  • 削除
  • フィールド追加

これはユーザ、ロールごとに制御可能です。この設定を行うことで、悪意を持ったユーザが適当にフィールド追加するのを防げるようになります。

f:id:mbaasdevrel:20190318155105p:plain

プッシュ通知の作成を制御しよう

プッシュ通知をSDK(API)から作成できないよう、制御しましょう。これは必要に応じてですが、キーが漏洩した場合にもプッシュ通知の作成を制限できます。キーが漏洩してもACL制御されていればデータの安全性は保証されますが、プッシュ通知を勝手に作られてしまうのは困るでしょう。そのため、アプリ側からプッシュ通知を作成する予定がないならば、制御しておく方が良いでしょう。

f:id:mbaasdevrel:20190318155218p:plain

クラスの作成を制御しましょう

SDKから任意のクラスを作成できないようにするのはアプリ設定で行えます。多くの場合、この設定は有効にしておくべきです。そうすることで勝手なデータを作成されるのは防げるようになります。

f:id:mbaasdevrel:20190318155234p:plain

まとめ

これらのテクニックを用いることで、万一キーが漏洩したとしてもアプリの安全性を維持できます。キーは際生成できますが、すでにアプリを配布してしまっている場合には安易な再生成はできないでしょう。セキュアにアプリを運用するためにも必要な制限を行うようにしてください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。