2015-11-25 19 views
5

URLスキームを介して別のアプリから開かれたアプリがあります。 URLにはサインイントークンが含まれています。どんなアプリも私のアプリと同じURLスキームを登録することができるので、私は「偽の」アプリがman-in-the-middle攻撃を行い、サインアップトークンを取得できることを心配しています。iOSのURLスキームのハイジャックを防止する

私のアイデアは、URLスキームが別のアプリケーションを開いていないことを確認することです。

セキュリティの観点からは、URLスキームが最初に自分のアプリを開くと、今後いつでも私のアプリが開かれるのでしょうか?

答えて

2

これは有効な(通常は無視される)攻撃方法です。厳密には中間者攻撃ではありません。アプリにURLを転送しないからです(できません)。攻撃アプリは本当にクラッシュする可能性があり、アプリのように見えます...

アプリがバックグラウンドにあるときは、いつでも別のアプリをインストールできます。技術的には、アプリケーションの実行中に既存のアプリケーション用にアップデートがリリースされ、インストールされている可能性があります。したがって、あなたのアプリが最初に開かれたときだけテストするのは安全ではありません。

+0

URLスキームは「先着順」スキームではありませんか? – Randomblue

+0

私はルールが何であるか100%ではないので、明示的にテストしていません。最初にインストールされるか、最後にインストールされます。したがって、1つのアプリは他のアプリに転送できません。 – Wain

4

iOS 9ユニバーサルリンクの使用はどうですか?

ユニバーサルリンクは、カスタムURLスキームとは異なり、ウェブサイトへの標準のHTTPまたはHTTPSリンクを使用するため、他のアプリでは要求できません。

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

この方法で、「ディスパッチテーブルは、」あなたのサーバー上にあるので、他のアプリは、サインアップURLをハイジャックすることはできません。 (URLディスパッチはAppIDに基づいています)

関連する問題