実行時の Android パーミッションの適用に関する以前の質問に続き、Android には、呼び出し元 (クライアント) アプリが所有するパーミッションをアプリが検証できるさまざまな方法があることがわかりました。これには、checkCallingPermission、checkCallingOrSelfPermission、checkCallingUriPermission、checkCallingOrSelfUriPermission、checkPermission、checkUriPermission などの呼び出しが含まれます。Androidのドキュメントを調べた限り、実行時のアクセス許可チェックに関連するこれらの呼び出しのみを見つけることができます。私の質問:
- 呼び出し元のアクセス許可を動的に確認する (前述の呼び出しを使用するのではなく) 他の方法はありますか? そのような電話がある場合は、情報/リンクを提供するか、それらをリストしてください。
- checkCallingOrSelfPermissionの説明に は、
現在 IPC を処理していない場合は、独自の権限が付与されます。注意して使用してください!
これは、呼び出しプロセスへの (危険な) パーミッションの委任を促進し、(不用意に使用すると) 特権のエスカレーションにつながる可能性があるため、危険に思えます。これが権限昇格攻撃につながる可能性があると言っているのが正しいかどうか教えてください。
- プロセス (実行中のアプリ) が特定のアクセス許可を持っているかどうかを確認する理由がわかりませんでした(それが何をする資格があるかをよく知っているでしょうか?)。この特定のメソッドの設計の背後にある直感を教えてください: checkCallingOrSelfPermission. (簡単に言えば、なぜ/いつ checkCallingOrSelfPermission が必要なのですか?)