android:exported
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
OWASP カテゴリ: MASVS-PLATFORM: プラットフォームのインタラクション
概要
android:exported
属性により、コンポーネント(アクティビティ、サービス、ブロードキャスト レシーバなど)を他のアプリのコンポーネントが起動できるかどうかが決まります。
true
の場合、アクティビティはどのアプリからもアクセスでき、正確なクラス名で起動できます。
false
の場合、アクティビティは、同じアプリのコンポーネント、同じユーザー ID を持つアプリ、または特権システム コンポーネントでしか起動できません。
この属性のデフォルト値の背後にあるロジックは時間とともに変化し、コンポーネントのタイプと Android のバージョンによって異なりました。たとえば、API レベル 16(Android 4.1.1)以前は、<provider>
要素の値はデフォルトで true
に設定されています。この属性を明示的に設定しなければ、一部のデバイス間でデフォルト値が異なるというリスクがあります。
影響
デフォルト値が異なると、誤って内部のアプリケーション コンポーネントを公開してしまう可能性があります。たとえば次のような結果が考えられます。
サービス拒否攻撃。
アプリの内部機能の変更を目的とした他のアプリによる不正なアクセス。
機密データの漏洩。
脆弱なアプリケーションのコンテキストでのコード実行。
リスクの軽減
常に android:exported
属性を明示的に設定します。こうすることで解釈の余地がなくなり、コンポーネントの可視化に関する意図が明確に示されます。
あなたへのおすすめ
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-02-23 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-02-23 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-02-23 UTC。"]]