2013-01-03 6 views
6

アプリ内の一部の機能をロック解除するためにアプリ内購入を使用する予定です。 これを行う最も安全な方法は何ですか? アプリ内購入でフルバージョンのロックを解除する安全な方法

はもともと私が NSUserDefaultsでブールを設定する計画:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isPro"];

しかしNSUserDefaultsが管理されているように私は(「ハック」を経由して、この値を設定する可能性があるかどうか、本当にわからないんだけどアプリでは直接ではなくiOSによって)、ユーザーがフルバージョンを取得するためにアプリ内購入を実行する必要はありません。

これを処理するベストプラクティスは何ですか?

+0

[この回答を確認](http://stackoverflow.com/questions/4978852/storing-in-app-purchase-receiptsアプリケーションキーチェーン)をキーチェーンに保存する方法について説明します。 – Eric

答えて

1

キーチェーンに保存することもできますが、脱獄されたデバイスでは読み込みや変更も簡単です。したがって、データを暗号化する必要があります。バイナリをスキャンして、アプリケーションで暗号化パスワードが見つからないことを確認してください。

8

はい、アプリケーションの設定を変更するのは比較的簡単です。しかし、それは本当に重要ですか?私は、自分のiPhoneのファイルシステムを開かせて設定ファイルを修正して1冊または2冊のファイルを保存しようとする人は誰も、そうすることができなければお金を使う傾向のある人ではないと賭けるだろう。

+1

私はあなたが正しいと思います。努力する価値はありません。 – Patrick

3

Obfuscationのセキュリティは、ここに行く最も簡単な方法です(たとえば、varに "isPro"という名前を付けないでください。単純なBOOLではなく、代わりにいくつかの "マジック"整数にしてください)。しかし、あなたはアプリのファイルシステムにファイルを保存して、それがアプリの起動時に内容ですチェックできるNSUserDefaultsを使用する代わりに。

を割れ、別のスピードバンプ。

ない、それはしかし、時間と手間の価値があることを確認に。

0

私はいくつかの問題に遭遇し、アプリ内Puを安全に保存するための2つの一般的な方法を見つけましたrchases:NSUserDefaultsの安全なバージョンを使用して

1):

A) "セキュアNSUserDefaults"。このバージョンのNSUserDefaultsは、保存された秘密アイテムのハッシュを生成し、アイテムの後にこのハッシュの検証を行います。だから、あなたは簡単にこのような "ハック"のデフォルト設定をユーザが簡単に扱うことができます。ここ

チェック:https://github.com/matthiasplappert/Secure-NSUserDefaults

B) "SecureNSUserDefaults"。 NSUserDefaultsとAES暗号化。ここでは、購買のための安全なbool値を格納するのではなく、支払いの完了を示すために難読化された文字列を使用することをお勧めします。ここ

チェック:https://github.com/nielsmouthaan/SecureNSUserDefaults

2)キーチェーン

キーチェーンにキーと値の項目を格納するためのa)の "RSSecrets" 単純なクラスを使用します。ここ も参照の議論:Storing In App Purchase receipts in the application Keychain

し、プロジェクトをチェック:https://github.com/jeffargast/RSSecrets

B)「STKeychain」ほとんどのログインを格納するために使用されるこのクラスは、/キーチェーンに渡しますが、MKStroreKitのプロジェクトで(人気のアプリ内購入iOSデバイス用のStoreKit)、実際にこのクラスを使用してアプリ内購入を保存します。ここ

チェック:https://github.com/ldandersen/STUtils/blob/master/Security/STKeychain.h

P.S.私はまだこのクラスをプロジェクトで使用していませんが、 "RSSecrets"を使うと思います。

+0

オプション2)を使用するためにiCloudキーチェーンを有効にする必要がありますか? Apple Watchでキーチェーンを使用できますか? –

+0

@AceGreen私が正しく覚えているように、ソリューション2を使用するためにiCloudを有効にする必要はありません(2014年の時点で、このようになっていました)。また、私はApple Watchで使用するようにテストしていませんでした。 –

+0

は別の言い方をしています。あなたがiOSで設定したApple Watchであなたのキーを取得できるように、キーチェーンを同期させたい場合は、iCloud Keychainを有効にする必要があります –

関連する問題