अगर उपयोगकर्ताओं की निजता से छेड़छाड़ होती है या ज़्यादा अनुमतियों की मांग की जाती है, तो उपयोगकर्ता एक्सटेंशन इंस्टॉल नहीं करेंगे उनकी ज़रूरतें पूरी होती हैं. अनुमति के अनुरोध उपयोगकर्ताओं के काम के होने चाहिए और उन्हें एक्सटेंशन लागू करने के लिए ज़रूरी जानकारी. ऐसे एक्सटेंशन जो किसी भी उपयोगकर्ता का डेटा इकट्ठा या ट्रांसमिट करते हैं उपयोगकर्ता के डेटा की निजता नीतियों का पालन करना चाहिए .
एक्सटेंशन का इस्तेमाल करने वाले लोगों की पहचान को सुरक्षित रखने के लिए, इन सावधानियों को शामिल करके उनकी सुरक्षा करें और उनका सम्मान करें. याद रखें: कोई एक्सटेंशन जितना कम डेटा ऐक्सेस कर सकता है, उतना ही कम डेटा लीक हो सकता है.
ज़रूरी अनुमतियां कम करें
जिन एपीआई को एक्सटेंशन ऐक्सेस कर सकता है उनके बारे में मेनिफ़ेस्ट के अनुमति फ़ील्ड में बताया गया है. कॉन्टेंट बनाने जितनी ज़्यादा अनुमतियां दी जाएंगी, हमलावर को जानकारी हासिल करने के उतने ही ज़्यादा तरीके मिलेंगे. सिर्फ़ एपीआई एक्सटेंशन की सूची पर निर्भर करता है. साथ ही, कम नुकसान पहुंचाने वाले को ध्यान में रखा जाना चाहिए के विकल्प. कोई एक्सटेंशन जितनी कम अनुमतियों का अनुरोध करेगा, उतनी ही कम अनुमति वाली चेतावनियां उपयोगकर्ता. इस बात की संभावना ज़्यादा होती है कि उपयोगकर्ता, सीमित चेतावनियों वाला एक्सटेंशन इंस्टॉल करें.
एक्सटेंशन "आने वाले समय के लिए उपलब्ध" नहीं होने चाहिए अपने उपयोगकर्ताओं के डेटा को ऐक्सेस करने की अनुमति मांगने के लिए, उनके पास फ़िलहाल इसकी ज़रूरत है, लेकिन इसे आने वाले समय में लागू किया जा सकता है. एक्सटेंशन अपडेट के साथ नई अनुमतियां शामिल करें और इन्हें ज़रूरी नहीं बनाएं.
activeTab
स्क्रिप्ट इंजेक्ट करने के लिए होस्ट की अनुमतियों का इस्तेमाल करने वाले एक्सटेंशन, अक्सर activeTab
की जगह ले सकते हैं.
activeTab
की अनुमति से, कुछ समय के लिए मौजूदा टैब को ऐक्सेस करने की अनुमति मिल जाएगी,
सिर्फ़ तब, जब उपयोगकर्ता एक्सटेंशन को लॉन्च करता है. जब उपयोगकर्ता किसी दूसरी जगह से या जिस पर
मौजूदा टैब को बंद कर देता है. यह <all_urls>
के कई इस्तेमाल के लिए एक विकल्प के तौर पर काम करता है.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 2
}
ActiveTab की अनुमति में, इंस्टॉलेशन के दौरान चेतावनी का कोई मैसेज नहीं दिखता.
वैकल्पिक अनुमतियों के लिए ऑप्ट इन करना
एक्सटेंशन की मदद से, उपयोगकर्ताओं को यह चुनने का विकल्प दें कि उन्हें कौनसी सुविधाएं और अनुमतियां चाहिए.
वैकल्पिक अनुमतियां. अगर किसी एक्सटेंशन के मुख्य फ़ंक्शन के लिए कोई सुविधा ज़रूरी नहीं है,
इसे ज़रूरी न बनाएं और एपीआई या डोमेन को optional_permissions
फ़ील्ड में ले जाएं.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", "https://www.google.com/" ],
...
}
वैकल्पिक अनुमतियां शामिल करने से, एक्सटेंशन यह बताता है कि उसे किसी खास अनुमति की ज़रूरत क्यों है जब उपयोगकर्ता ज़रूरी सुविधा को चालू करता है. एक्सटेंशन, उपयोगकर्ता को चालू करने का विकल्प दे सकता है सुविधाएँ.
ठीक है! पर क्लिक करने से, बैकग्राउंड स्क्रिप्ट में नीचे दिया गया इवेंट ट्रिगर हो जाएगा.
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();
}
});
});
इसके बाद, उपयोगकर्ता को यह अनुरोध भेजा जाएगा.
वैकल्पिक अनुमतियां, एक्सटेंशन के अपडेट में भी लागू की जा सकती हैं. ऐसा करने से यह सुविधा, एक्सटेंशन को बंद किए बिना उपयोगकर्ताओं के लिए उपलब्ध है. ऐसा हो सकता है कि आप एक्सटेंशन को ज़रूरी अनुमतियां.
उपयोगकर्ता की जानकारी को सीमित और सुरक्षित रखना
उपयोगकर्ता के उस कम से कम डेटा का अनुरोध करें जिसके लिए एक्सटेंशन की ज़रूरत है. एक्सटेंशन जितनी कम जानकारी मांगता है का मतलब है, अगर एक्सटेंशन के साथ छेड़छाड़ की जाती है, तो उसके एक्सपोज़र कम हो जाता है.
उपयोगकर्ता के जिस डेटा के लिए अनुरोध किया गया है उसे सावधानी से इस्तेमाल किया जाना चाहिए. की मदद से किसी सुरक्षित सर्वर में डेटा सेव और फिर से पाएं एक रजिस्टर किया गया डोमेन. क्लाइंट से कनेक्ट करने के लिए, हमेशा एचटीटीपीएस का इस्तेमाल करें. साथ ही, क्लाइंट में उपयोगकर्ता का संवेदनशील डेटा रखने से बचें एक्सटेंशन मेमोरी के रूप में एन्क्रिप्ट नहीं किया जाता है, तो उस एक्सटेंशन को एन्क्रिप्ट नहीं किया जाता है.