iOSのIAPにおいて、他アプリのレシートと入れ替えると通ってしまうという脆弱性が存在する。 このアプリは、簡単にレシートを取得できるアプリなので、アプリのIAPのレシート偽装の脆弱性の診断に便利です。 対策は、ちゃんとレシートの発行先アプリ名を確認することです。
App Store Connect
にログインして、アプリを登録する(アプリIDをcom.funa.iospayment
とする)App Store Connect
の商品で、攻撃対象のアプリで販売されているアイテムと同じ製品IDのアイテムを作成する- 例:
powerup.item.100
- 例:
App Store Connect
にてSandboxテスターアカウントを登録する- 本アプリの
[Target]->[Signing & Capabilities]->[Bundle Identifier]
をcom.funa.iospayment
とする - 本アプリの
iospayment/StoreManager.swift
のproductIdentifiers
配列に、先ほどApp Store Connect
で登録した製品ID(powerup.item.100
)を追記する。 - Xcodeでプロジェクトを開きビルドし、スマホで実行する
- アプリのリストボックスから先ほど登録した商品名を選択し、購入ボタンをタップする。すると、Sandboxテスターアカウントを聞かれるので、アカウント名とパスワードを入力する。
- 購入が成功するとアプリ画面にレシートが表示される。レシートはログにも出力されているので、PCに取り込みたい時はXcodeのコンソールから取得する