iOS Universal Links
はじめに
ユニバーサルリンクは、ユーザーにシームレスなリダイレクト体験を提供し、Safariのリダイレクトをバイパスしてアプリ内のコンテンツを直接開くことができます。これらのリンクはユニークで安全であり、他のアプリによって使用されることはありません。これは、apple-app-site-association
JSONファイルをウェブサイトのルートディレクトリにホスティングすることによって確保され、ウェブサイトとアプリの間の検証可能なリンクが確立されます。アプリがインストールされていない場合、Safariが引き継ぎ、ユーザーをウェブページに誘導し、アプリの存在を維持します。
ペネトレーションテスターにとって、apple-app-site-association
ファイルは特に興味深いものであり、機密パスを明らかにする可能性があり、リリースされていない機能に関連するパスを含むことがあります。
関連ドメイン権限の分析
開発者は、XcodeのCapabilitiesタブで関連ドメインを構成するか、.entitlements
ファイルを検査することで、ユニバーサルリンクを有効にします。各ドメインはapplinks:
で接頭辞が付けられます。例えば、Telegramの構成は次のように表示されるかもしれません:
より包括的な洞察を得るには、アーカイブされたApple Developer Documentationを参照してください。
コンパイルされたアプリケーションで作業する場合、権限はこのガイドで説明されているように抽出できます。
Apple App Site Associationファイルの取得
apple-app-site-association
ファイルは、権限で指定されたドメインを使用してサーバーから取得する必要があります。ファイルは、https://<domain>/apple-app-site-association
で直接HTTPS経由でアクセスできることを確認してください。Apple App Site Association (AASA) Validatorなどのツールがこのプロセスを支援します。
アプリ内でのUniversal Linksの処理
アプリは、Universal Linksを正しく処理するための特定のメソッドを実装する必要があります。探すべき主要なメソッドはapplication:continueUserActivity:restorationHandler:
です。処理されるURLのスキームがHTTPまたはHTTPSであることが重要です。それ以外のスキームはサポートされません。
データハンドラーメソッドの検証
Universal Linkがアプリを開くと、NSUserActivity
オブジェクトがURLとともにアプリに渡されます。このURLを処理する前に、セキュリティリスクを防ぐために、それを検証およびサニタイズすることが重要です。以下は、このプロセスを示すSwiftの例です。
URLは、特にパラメータを含む場合には注意深く解析および検証する必要があります。NSURLComponents
APIは、この目的に役立ちます。以下に示すように。
入念な構成と検証により、開発者はユニバーサルリンクがユーザーエクスペリエンスを向上させる一方でセキュリティとプライバシー基準を維持できます。
参考文献
Last updated