ผู้ใช้จะไม่ติดตั้งส่วนขยายหากส่วนขยายเป็นการละเมิดความเป็นส่วนตัวหรือขอสิทธิ์เพิ่มเติมตามที่เห็นว่าจำเป็น คำขอสิทธิ์ควรฟังดูสมเหตุสมผลสำหรับผู้ใช้ และจำกัดอยู่เพียงข้อมูลสำคัญที่จำเป็นต่อการใช้งานส่วนขยายเท่านั้น ส่วนขยายที่รวบรวมหรือส่งข้อมูลผู้ใช้ ต้องเป็นไปตามนโยบายความเป็นส่วนตัวของข้อมูลผู้ใช้
ปกป้องและเคารพผู้ใช้ส่วนขยายโดยรวมข้อควรระวังเหล่านี้เพื่อรักษาความปลอดภัยให้กับข้อมูลประจำตัว แต่อย่าลืมว่ายิ่งส่วนขยายเข้าถึงได้น้อย ข้อมูลก็อาจรั่วไหลโดยไม่ตั้งใจได้มากเท่านั้น
ลดสิทธิ์ที่จำเป็น
มีการระบุ API ที่ส่วนขยายเข้าถึงได้ในช่องสิทธิ์ของไฟล์ Manifest ยิ่งได้รับสิทธิ์มากเท่าใด ผู้โจมตีก็จะดักจับข้อมูลได้มากขึ้นเท่านั้น ควรแสดงเฉพาะ 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/" ],
...
}
การรวมสิทธิ์ที่ไม่บังคับจะช่วยให้ส่วนขยายอธิบายเหตุผลที่ต้องใช้สิทธิ์บางอย่างได้เมื่อผู้ใช้เปิดใช้ฟีเจอร์ที่เกี่ยวข้อง ส่วนขยายจะมีตัวเลือกให้ผู้ใช้ เปิดใช้ฟีเจอร์ต่างๆ ได้
การคลิก Okay! จะทริกเกอร์เหตุการณ์ต่อไปนี้ในสคริปต์เบื้องหลัง
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 เพื่อเชื่อมต่อและหลีกเลี่ยงการเก็บข้อมูลที่ละเอียดอ่อนของผู้ใช้ไว้ที่ฝั่งไคลเอ็นต์ของส่วนขยายเสมอ เนื่องจากพื้นที่เก็บข้อมูลส่วนขยายไม่ได้เข้ารหัส