プライバシーが侵害された場合や、必要と思われる追加の権限を要求された場合、ユーザーは拡張機能をインストールしません。権限のリクエストは、ユーザーにとって意味のあるものを使用し、拡張機能の実装に必要な重要な情報のみに限定する必要があります。ユーザーデータを収集または送信する拡張機能は、ユーザーデータ プライバシー ポリシーに準拠する必要があります。
ID の安全性を維持するために以下の対策を講じることで、拡張機能のユーザーを保護し、尊重してください。なお、拡張機能がアクセスできるデータが少ないほど、誤って漏洩するデータも少なくなります。
必要な権限を減らす
拡張機能がアクセスできる API は、マニフェストの権限フィールドで指定します。付与される権限が多いほど、攻撃者が情報を傍受する手段も増えます。拡張機能が依存する API のみを列挙し、影響の少ないオプションを検討する必要があります。拡張機能がリクエストする権限が少ないほど、ユーザーに表示される権限の警告は少なくなります。ユーザーは警告が限定された拡張機能をインストールする可能性が高くなります。
拡張機能は、現在は必要でなくても、今後実装される可能性がある権限をリクエストすることで、ユーザーデータへのアクセスを「将来にわたり保護」するべきではありません。拡張機能の更新に新しい権限を含めます。それらの権限をオプションにすることも検討してください。
activeTab
多くの場合、ホスト権限を使用してスクリプトを挿入する拡張機能で、代わりに activeTab
を使用できます。activeTab
権限は、ユーザーが拡張機能を呼び出した場合にのみ、現在アクティブなタブに対する一時的なアクセス権を拡張機能に付与します。ユーザーが現在のタブから移動するか、現在のタブを閉じると、アクセスが途切れます。<all_urls>
のさまざまな使用方法の代わりとして使用できます。
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 2
}
ActiveTab 権限では、インストール中に警告メッセージが表示されません。
オプションの権限を有効にする
オプションの権限を含めることで、ユーザーが拡張機能に必要な機能と権限を選択できるようにします。拡張機能のコア機能に不可欠な機能でない場合は、その機能をオプションにして、API またはドメインを optional_permissions
フィールドに移動します。
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", "https://www.google.com/" ],
...
}
オプションの権限を含めることで、ユーザーが関連機能を有効にしたときに、特定の権限が必要な理由を拡張機能で説明できるようになります。この拡張機能では、機能を有効にするオプションをユーザーに提供できます。
[OK] をクリックすると、バックグラウンド スクリプトで次のイベントがトリガーされます。
document.querySelector('#button').addEventListener('click', function(event) {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, function(granted) {
// The callback argument will be true if the user granted the permissions.
if (granted) {
// doSomething();
} else {
// doSomethingElse();
}
});
});
ユーザーには、次のリクエストを求めるメッセージが表示されます。
拡張機能の更新でオプションの権限を実装することもできます。これにより、新しい必要な権限で更新した場合と同様に、拡張機能を無効にせずにユーザーが新機能を利用できるようになります。
ユーザー情報を制限して保護する
拡張機能に必要なユーザーデータは、必要最小限に留めてリクエストします。拡張機能がユーザーに求める情報が少ないほど、拡張機能が不正使用された場合に漏洩する可能性は低くなります。
リクエストされたユーザーデータはすべて慎重に取り扱う必要があります。登録済みドメインを持つセキュアなサーバーにデータを保存、取得する。拡張機能のストレージは暗号化されないため、常に HTTPS を使用して接続してください。また、拡張機能のクライアントサイドにユーザーの機密データを保持しないようにしてください。