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

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

データストアをセキュアに運用する

f:id:mbaasdevrel:20190520140825p:plain

データストアはスキーマレスなデータベースで、柔軟に利用できます。しかし、その柔軟さ故にコーディングミスでカラムが作られてしまったり、データが追加されてしまったりします。

RDBMSに慣れている人はもう少し制約を付けたいと思うでしょう。今回はそのためのテクニックを紹介します。

データの追加、更新、削除に権限を設ける

データの更新、削除はACLによって制御できますが、追加についても制御可能です。クラスのパーミッション設定を使うことで、特定の権限を持ったロール(または会員)に対して権限を付与できます。

f:id:mbaasdevrel:20190520140825p:plain

マスターデータなど、管理画面からしか変更しないものについては更新、作成、削除権限は無効にしておくのがオススメです。

カラムの追加を制限する

同様にカラム(フィールド)の追加も制限できます。この設定を設けておくことでプログラムミスによってカラムが追加されてしまうのを防げます。

APIからクラスの追加を禁止する

通常、誰でもAPI経由でクラスを追加できます。悪意を持ったユーザであれば大量のデータを送り込んで容量いっぱいまで使い切ってしまうかも知れません。

f:id:mbaasdevrel:20190520140841p:plain

この制御はアプリ設定のデータ・ファイルストアにあるアプリからのクラス作成を無効にして制御できます。

まとめ

開発中は柔軟性が重視されるのでデフォルト設定のままで良いでしょう。しかし、運用時にはデータの正確性を重視するようになるかも知れません。そのためにデータストアの設定を使ってセキュアに運用してください。

中津川 篤司

中津川 篤司

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