Asial Blog

Recruit! Asialで一緒に働きませんか?

Monacaアプリで重要なデータを保存する3つの方法

カテゴリ :
バックエンド(プログラミング)
タグ :
JavaScript
Cordovaプラグイン
セキュリティ

Monacaでアプリを開発していて、外部に漏洩できない重要なデータを保持したいと思うことがあるはずです。今回はその方法について幾つか紹介します。



まとめ



  1. Keychainプラグインを使う
  2. サーバサイドを使う
  3. セキュアストレージを使う


Keychainプラグインを使う



これはiOSに限定した利用法になります。KeychainPluginを使って行います。Keychainを使えばiOSが標準で提供するセキュアなデータの保存が実現します。



まずMonacaにてプラグインKeychainPluginをインストールします。そのためGoldプラン以上の方法になります。







インストールしたらiOSアプリ設定、ビルド設定を行います。任意のプラグインを使った場合、Monacaデバッガーではなくアプリとしてビルドとインストールをしなければなりません。ビルド設定時にはあらかじめ作成した開発者証明書などをアップロードしてください。







また、ビルドを実行する際にはプロビジョニングが求められますので、iOSアプリ設定で指定したIDでプロビジョニングを作成しておいてください。







デモアプリとしてビルドしてインストールした結果が下記になります。







Keychainアクセスを使ってデータを保存しました。







存在しないキーの場合、nullが返ってきます。







そしてキーを指定してデータの取得ができます。







Keychainプラグインによってデータを安全に保管できるようになります。ユーザのトークンやユーザIDなど個人に関わる機密データを扱う際に便利かと思います。



サーバサイドを使う



サーバサイドに保存したデータをアプリに返す方法です。この場合、一旦何らかの認証(OAuth2など)を行った上で設定やアプリを使う上で必要なデータを渡すようにします。サーバサイドにあるので何らかの問題が起きてもサーバ側の対応だけで済む(トークンをリフレッシュするなど)のが利点ですが、利用時に必ずインターネット接続が必要になるのが不便かも知れません。



セキュアストレージを使う







Monacaのエンタープライズプランではセキュアストレージを提供しています。セキュアストレージはデータを暗号化して保存しますので安全な利用ができるようになります。内部ストレージ全体を暗号化しますので、万一機器を紛失したといった場合においてもデータ漏洩を未然に防止します。



Moancaエンタープライズ - 大企業向けHTML5ハイブリッドアプリ開発プラットフォーム






アプリにおいてデータのセキュリティを確保するというのは大変なことです。毎回ログインさせるなどといった仕組みは利便性と相反するものになるでしょう。データの重要性をランク付けて、必要なデータの種類に応じてセキュリティの方法を変えてみると良いのではないでしょうか。