RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-04-21上級

Rorkアプリを不正購入・リクエスト偽装から守る — App Attest / Play Integrity でAPI入口を固めるサーバーサイド検証の設計

Rorkアプリの収益を不正購入・APIリクエスト偽装から守るための、App AttestとPlay Integrityを使ったサーバーサイド検証の完全設計。iOS/Android両対応、Cloudflare Workers実装、StoreKit 2 JWS検証まで実例コードで解説します。

Rork515セキュリティ13App AttestPlay IntegrityStoreKit 216サーバー検証2個人開発187

プレミアム記事

アプリを App Store と Google Play に公開して半年ほど経つと、決まって一定の割合で届くようになるのが「購入できない」というサポートメールです。最初は実装バグを疑いますが、中にはどう見てもレシート偽装・改変されたクライアントからのリクエストが混ざっています。個人開発でもアプリがある程度売れてくると、ここを放置すると月々の収益がじわじわ削られていきます。

Rorkで作ったアプリの収益と API 入口を、Apple の App Attest API と Google の Play Integrity API を使って守るためのサーバーサイド検証を、Cloudflare Workers 上で一気通貫に組む方法を順を追って整理していきます。単なる API の紹介ではなく、私が実際にサブスクリプション型アプリに組み込んだ際の落とし穴と、本番で動き続けている設計のコード一式をそのまま共有します。

StoreKit 2 の JWS 検証や Google Play Billing の署名検証と組み合わせることで、「正しいアプリから来た」「正しい購入である」「レート制限の範囲内である」の3点をサーバー側で確証できるようになります。

なぜ端末証明が必要になったのか — 不正の実例と損失

最初にざっくりとした現状認識を共有させてください。個人開発でも、App Store/Play ストアの審査を通してリリースしている以上、以下のようなパターンの攻撃は確実に一定数起こります。

  • レシート偽装による購入詐称: StoreKit のレシートを偽装して、無料で有料機能を使うケース。特に初期のレシート検証がクライアントだけで完結していると発生します
  • API の直接叩き込み: アプリのバイナリから API エンドポイントを抜き出し、Python や Postman で直接 LLM 呼び出しなどを行うケース。AI 機能を搭載したアプリで最も損失が出やすい部分です
  • IAP 返金後の機能利用: クレジットカード会社経由で返金を取ったあと、アプリ側がローカルフラグで機能を有効にし続けるケース
  • ジェイルブレイク端末での無料化ツール: 主に iOS の一部コミュニティで流通しているツールによる自動バイパス

「個人開発だから誰も狙わないだろう」と思いたくなりますが、実際には自動化された大量スキャンの副産物として毎月一定数ヒットします。私のアプリでも、App Attest を導入する前後で、AI エンドポイントへの不正リクエストが月7,000件以上から月50件以下まで減りました。導入は1日で終わり、月額コストもほぼゼロなので、これは コスパの極端に高いセキュリティ投資 だと断言できます。

App Attest と Play Integrity の立ち位置 — 何を証明してくれるのか

混同しやすいので先に整理します。iOS の App Attest API と Android の Play Integrity API は、以下の事実をサーバーに対して暗号的に証明するための仕組みです。

  • アプリの完全性: 配布されているバイナリが改ざんされていないこと
  • 端末の完全性: ジェイルブレイク・ルート化されていない、もしくは改造ブートローダーでないこと
  • 呼び出し元の真正性: 正規の App Store / Play ストアから配布されたアプリであること

重要なのは、これらは 「誰がアクセスしているか」ではなく「何がアクセスしているか」を保証する仕組み だという点です。ユーザー認証(Clerk / Supabase Auth など)とは直交する概念で、両方を組み合わせることで初めて「正規ユーザーが正規アプリから正規端末でアクセスしている」と言えるようになります。

App Attest が返すのは公開鍵ベースのアテステーションオブジェクトで、Play Integrity が返すのは JWE/JWS 形式のトークンです。フォーマットは違いますが、サーバー側で検証する流れはほぼ同じ形に落とせます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
App AttestとPlay Integrityの導入で詰まっていた人が、Rorkアプリに組み込む全手順を今日から実装できるようになります
iOS/Android両対応のサーバー検証ロジックをCloudflare Workersで動かす完全なコードを手に入れられます
StoreKit 2のJWS署名検証と組み合わせて、不正購入によるサブスクリプション損失を防ぐ設計が実現できます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-06-27
無料プレビューがスクショで丸ごと持ち出される前に — Rork/Expo でスクリーンショットと画面収録を検知して目隠しする設計
Rork/Expo アプリで有料プレビュー画像をスクリーンショットと画面収録から守る実装。expo-screen-capture の限界、isCaptured のネイティブ監視、iOS/Android の差を踏まえた目隠し設計を解説します。
開発ツール2026-05-20
Rork × StoreKit 2 × App Store Server API — 個人開発アプリのサブスク基盤を3層で守る実装設計
Rork製iOSアプリにStoreKit 2とApp Store Server APIを組み合わせ、クライアント検証・サーバ検証・通知監視の3層でサブスク収益を守る実装と運用ノウハウを公開します。
開発ツール2026-07-11
StoreKit 2 の署名付きトランザクションを Cloudflare Worker で検証する
端末が申告した課金状態をそのまま信じると、改ざんされたエンタイトルメントを通してしまいます。StoreKit 2 の署名付きトランザクション(JWS)を Cloudflare Worker 側で検証し、端末を信用せずに権利を付与する設計と実装を、動くコードとともに整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →