ปกป้องความเป็นส่วนตัวของผู้ใช้

ผู้ใช้จะไม่ติดตั้งส่วนขยายหากส่วนขยายเป็นการละเมิดความเป็นส่วนตัวหรือขอสิทธิ์เพิ่มเติมตามที่เห็นว่าจำเป็น คำขอสิทธิ์ควรฟังดูสมเหตุสมผลสำหรับผู้ใช้ และจำกัดอยู่เพียงข้อมูลสำคัญที่จำเป็นต่อการใช้งานส่วนขยายเท่านั้น ส่วนขยายที่รวบรวมหรือส่งข้อมูลผู้ใช้ ต้องเป็นไปตามนโยบายความเป็นส่วนตัวของข้อมูลผู้ใช้

ปกป้องและเคารพผู้ใช้ส่วนขยายโดยรวมข้อควรระวังเหล่านี้เพื่อรักษาความปลอดภัยให้กับข้อมูลประจำตัว แต่อย่าลืมว่ายิ่งส่วนขยายเข้าถึงได้น้อย ข้อมูลก็อาจรั่วไหลโดยไม่ตั้งใจได้มากเท่านั้น

ลดสิทธิ์ที่จำเป็น

มีการระบุ 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 เพื่อเชื่อมต่อและหลีกเลี่ยงการเก็บข้อมูลที่ละเอียดอ่อนของผู้ใช้ไว้ที่ฝั่งไคลเอ็นต์ของส่วนขยายเสมอ เนื่องจากพื้นที่เก็บข้อมูลส่วนขยายไม่ได้เข้ารหัส