アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


iOSアプリで悪意あるユーザーに値を改ざんされないために

有料アプリなどを作っていると、脱獄などを行ったユーザーに値を書き換えられるとまずいことがあります。
対処法はざっくり3つかなと

ファイル暗号化

UserDefaultsを使用していると、iExplorerなどのアプリを使えばiPhoneファイルシステム内部を見ることができ、
脱獄してなくてもファイルの書き換えができちゃうみたいです。
保存する前にデータを暗号化すると良さそう。

Keychain accessを使う

UserDefaultsを使うのではなく、Keychain Accessを使うのもよさそう。
そもそもユーザーがアクセスできない領域のようなので安心。
だが、脱獄したiPhoneですらアクセスできないのかは未確認。
このへんの情報、ややディープなのでなかなか出てきません。
知ってる方いたら教えていただけると助かります。

keychain accessの詳しい解説

Cocoaの日々: [iOS] Keychain Services とは

重要な情報はサーバーに保存して都度問い合わせ

まぁこれが一番安心といえば安心です。