セキュリティに関するおすすめの設定

アプリ内課金を設計する際は、このドキュメントで説明するセキュリティに関するおすすめの設定に沿うようにしてください。こちらのガイドラインは、Google Play のアプリ内課金サービスの全利用者に推奨されます。

購入の詳細を検証する

信頼できるサーバーで、購入の詳細を検証することを強くおすすめします。ただし、サーバーを使用できない場合でも、デバイスのアプリ内でこれらの詳細を検証することは可能です。

サーバーで検証する

署名検証ロジックをサーバー側で実行することで、攻撃者が APK ファイルをリバース エンジニアリングするのを困難にすることができます。これにより、ロジックでチェックする署名の整合性が保たれます。

信頼できるサーバーで購入の詳細を検証するには、以下の手順を行います。

  1. デバイスとサーバーのハンドシェイクが安全であることを確認します。
  2. 返されたデータ署名と orderId を確認し、orderId が以前に処理したことのない一意の値であることを確認します。
  3. 処理する INAPP_PURCHASE_DATA がアプリのキーで署名されていることを確認します。
  4. Google Play Developer API の ProductPurchase リソース(アプリ内アイテム用)または SubscriptionPurchase リソース(定期購入用)を使用して購入レスポンスを検証します。攻撃者が Play ストアの購入リクエストに対して偽のレスポンスを作成できなくなるため、この手順は特に有効です。

ロックフリー コンテンツを保護する

悪意のあるユーザーによってロックフリー コンテンツが再配信されるのを防ぐために、APK ファイルでバンドルしないようにします。代わりに次のいずれかを行ってください。

  • コンテンツ フィードなどのリアルタイム サービスを使ってコンテンツを配信する。リアルタイム サービス経由でコンテンツを配信すると、コンテンツが最新の状態で保持されます。
  • コンテンツの配信にリモート サーバーを使用する。

リモート サーバーまたはリアルタイム サービスからコンテンツを配信すると、ロックフリー コンテンツをデバイスのメモリや SD カードに保存できます。SD カードに保存する場合には、必ずコンテンツを暗号化し、デバイス固有の暗号化キーを使用してください。

商標と著作権違反に対する措置

コンテンツの配信や管理にリモート サーバーを使用している場合、ユーザーがコンテンツにアクセスした際は必ずロックフリー コンテンツの購入状況を確認しておきます。これにより、必要に応じて利用を取り消し、侵害行為を最小限に抑えることができます。

自分のコンテンツが Google Play で再配信されているのを見つけたたら、躊躇せずに迅速に行動しましょう。詳しくは、著作権ヘルプセンターの著作権に関するよくある質問をご覧ください。