ติดตั้งส่วนขยาย Firefox ทั้งหมด
(jack.cab)- มีการทดลองขนาดใหญ่ที่ รวบรวม·ติดตั้งส่วนขยาย Firefox ทั้งหมดกว่า 84,000 รายการ โดยใช้ Add-ons API ของ Mozilla
- ได้ ส่วนขยายที่ไม่ซ้ำกัน 84,235 รายการ ผ่านการสแครป รวมขนาดทั้งหมด 49.3GB และเปิดเผยชุดข้อมูลบน Hugging Face
- ระหว่างกระบวนการติดตั้งพบส่วนขยายอันตรายจำนวนมากหลายประเภท เช่น ฟิชชิง·สแปม·PUA (แอปที่อาจไม่พึงประสงค์)
- สุดท้ายสามารถ ติดตั้งส่วนขยายได้สำเร็จ 84,194 รายการ แต่เบราว์เซอร์แทบใช้งานไม่ได้
- การทดลองนี้ถูกประเมินว่าเป็นกรณีศึกษาที่เผยให้เห็น ขนาด คุณภาพ และปัญหาด้านความปลอดภัยของระบบนิเวศส่วนขยาย อย่างครบถ้วน
การทดลองติดตั้งส่วนขยาย Firefox ทั้งหมด
- การทดลองขนาดใหญ่ที่ รวบรวม·วิเคราะห์·ติดตั้งส่วนขยายสำหรับ Firefox ทั้งหมดกว่า 84,000 รายการ
- สแครปรายชื่อส่วนขยายทั้งหมดผ่าน Add-ons API แบบสาธารณะ ของ Mozilla และทำการติดตั้งจริงด้วย
- ชุดข้อมูลถูกเผยแพร่บน Hugging Face เพื่อให้ทุกคนเข้าถึงได้
- หลังพยายามหลายครั้งก็ ติดตั้งส่วนขยายได้สำเร็จ 84,194 รายการ แต่เบราว์เซอร์แทบใช้งานไม่ได้
- จากการทดลองนี้ทำให้เห็น ขนาดของระบบนิเวศส่วนขยาย คุณภาพ ส่วนขยายอันตราย สแปม และ PUA (แอปที่อาจไม่พึงประสงค์)
การสแครปส่วนขยาย Firefox
- addons-server API ของ Mozilla เข้าถึงได้โดยไม่ต้องยืนยันตัวตน และสามารถดึงรายชื่อส่วนขยายแบบแบ่งหน้าได้ผ่านเอนด์พอยต์
search - การเรียงลำดับเริ่มต้น (
recommended,users) ดึงได้เพียงราว 30,000 รายการ จึงใช้ตัวเลือกการเรียงลำดับหลายแบบ เช่นcreated,rating,hotness,updatedเพื่อเก็บส่วนขยายที่ตกหล่น - ใช้พารามิเตอร์
exclude_addonsเพื่อเก็บส่วนขยายเพิ่มเติมหลังหน้าที่ 600 - ด้วยการส่งคำขอแบบขนานตามหมวดหมู่ จึงได้ ส่วนขยายที่ไม่ซ้ำกันรวม 84,235 รายการ ขนาดเฉลี่ย 584.9KB รวมทั้งหมด 49.3GB
- ชุดข้อมูลสุดท้ายถูกอัปโหลดและเผยแพร่บน Hugging Face
- ในอัปเดตวันที่ 11 เมษายน 2026 มีการใช้ฟิลเตอร์
created__gte,created__lteเพื่อทำ การสแครปทั้งหมดอย่างแม่นยำและมีประสิทธิภาพ
การวิเคราะห์ส่วนขยาย Firefox
- ส่วนขยายที่ใหญ่ที่สุด คือ dmitlichess (196.3MB) ซึ่งมีไฟล์เสียงมากกว่า 2,000 ไฟล์
- ส่วนขยาย 10 อันดับแรกส่วนใหญ่มีเนื้อหาขนาดใหญ่ เช่น โมเดล AI, แอป Unity, ทรัพยากรรูปภาพ
- ส่วนขยายที่เล็กที่สุด คือ theTabs-saver (7.5KB) และไม่มีโค้ด
- ส่วนขยายที่ได้คะแนนต่ำที่สุด คือ Tab Stack for Firefox
- ส่วนขยายที่เก่าแก่ที่สุด คือ Web Developer
- ส่วนขยายที่มีภาพหน้าจอมากที่สุด คือ RDS Bar (54 ภาพ)
- ส่วนขยายที่ขอสิทธิ์มากที่สุด คือ FalscheLaden (ขอสิทธิ์ 3,695 รายการ) รองลงมาคือ Google Dark Theme (2,675 รายการ)
- นักพัฒนาที่เผยแพร่ส่วนขยายมากที่สุด คือ Dr. B (84 ส่วนขยาย) โดยส่วนใหญ่มี README แต่ไม่มีไอคอน
-
ฟิชชิงและส่วนขยายอันตราย
- พบ ส่วนขยายฟิชชิงกระเป๋าเงินคริปโต จำนวนมากในชุดข้อมูล
- ตัวอย่าง: “Іron Wаllеt” จะรับ URL จาก NocoDB หลังติดตั้ง 3 วินาที แล้วพาไปยังหน้าฟิชชิง
- บางส่วนขยายรับ seed phrase แล้วส่งไปยังเซิร์ฟเวอร์
- หลังรายงานไป Mozilla ได้ลบส่วนใหญ่ในวันถัดมา
- ยังพบกรณีที่ API key มีสิทธิ์เขียน ทำให้สามารถลบข้อมูลได้โดยตรง
- พบ ส่วนขยายฟิชชิงกระเป๋าเงินคริปโต จำนวนมากในชุดข้อมูล
-
ส่วนขยายสแปม SEO
- ลิงก์ “Homepage” ในหน้าส่วนขยายถูก นำไปใช้เป็นแบ็กลิงก์
- ส่วนขยายที่สร้างด้วย AI เช่น Typo Sniper, Tab Fortune Teller เชื่อมไปยังเว็บไซต์คาสิโน
- มีส่วนขยายแนว “Code Injector” จำนวนมาก โดยใช้โครงสร้างโค้ดเดียวกันและโดเมนสุ่ม
- ส่วนใหญ่ถูกสร้างขึ้นในปี 2025
-
ส่วนขยาย PUA (แอปที่อาจไม่พึงประสงค์)
- พบส่วนขยายราว 20 ชนิดที่มีรูปแบบ “Custom Web Search” รวมผู้ใช้ มากกว่า 700,000 คน
- ทั้งหมดมีโครงสร้างและโดเมนเดียวกัน พร้อมระบุ “Innover Online Group Ltd”
- Mozilla ได้ปิดใช้งานบางส่วนแล้ว (รวมผู้ใช้ 115,000 คน)
- ใช้โค้ดพันธมิตร Yahoo
safeplexsearchและมีเวอร์ชันเฉพาะสำหรับ Firefox - บริษัทลักษณะคล้ายกันอย่าง Atom Apps ก็เผยแพร่ส่วนขยายด้วยวิธีเดียวกัน โดยมีผู้ใช้รายวันรวม 220,000 คน
-
สรุปสถิติ
- 34.3% ของส่วนขยายมีผู้ใช้รายวัน 0 คน
- มีผู้ใช้ 10 คนขึ้นไป: 25.1%, 100 คนขึ้นไป: 10.6%, 1,000 คนขึ้นไป: 3.2%, 10,000 คนขึ้นไป: 0.7%
- 76.7% เป็นโอเพนซอร์ส (ตามเกณฑ์ไลเซนส์ SPDX)
- 23% เป็นส่วนขยายที่สร้างขึ้นหลังจากเขียนบทความ
- ในกลุ่มนี้ 19% ไม่มีผู้ใช้ รีวิว ไอคอน และการดาวน์โหลดเลย
- 2.4% เป็นส่วนขยายแบบเสียเงิน และในจำนวนนั้น 38.1% เป็นโอเพนซอร์ส
- 34.3% ของส่วนขยายมีผู้ใช้รายวัน 0 คน
ความพยายามติดตั้งส่วนขยายทั้งหมด
- บันทึกไฟล์
.xpiของแต่ละส่วนขยายลงในโฟลเดอร์โปรไฟล์ด้วยชื่อ GUID แล้วแก้ไขextensions.json - ลบ
addonStartup.json.lz4และปรับแต่งextensions.jsonเพื่อเปิดใช้งานอัตโนมัติ -
ครั้งที่ 0: 65,335 รายการ (Windows VM)
- พยายามติดตั้งด้วยวิธี Enterprise Policy แต่ หน่วยความจำไม่พอและระบบค้าง
-
ครั้งที่ 1: ประมาณ 1,000 รายการ
- ดาวน์โหลดโดยตรงแล้วจัดวางเอง ติดตั้งสำเร็จ
- บางส่วนขยาย เปลี่ยนข้อความทั้งหมดเป็นสตริงบางอย่าง
- เนื่องจากส่วนขยายด้านความปลอดภัยจำนวนมาก จึงมี การบล็อกโดเมนและป๊อปอัปเตือน บ่อยครั้ง
-
ครั้งที่ 2: 65,335 รายการ
- ลืมลบ
addonStartup.json.lz4ทำให้จริง ๆ แล้วเปิดใช้งานได้เพียงระดับ 1,000 รายการ - ระหว่างเปิด
about:addonsFirefox ค้างและเปิดใหม่ไม่ได้
- ลืมลบ
-
ครั้งที่ 3: 65,335 รายการ (Mac)
- เมื่อดาวน์โหลดแบบขนาน ความเร็วลดลง ใช้เวลารวม 6 ชั่วโมง
- เมื่อเปิด Firefox เกิดสถานะ ไม่ตอบสนอง และ
extensions.jsonมีขนาด 144MB - มีการเขียนข้อมูลลงดิสก์ มากกว่า 400GB
-
ครั้งที่ 4~10: 1,000~6,000 รายการ
- ถึง 3,000 รายการยังโหลดหน้าเว็บได้
- ตั้งแต่ 4,000 รายการขึ้นไป ทุกเว็บไซต์ถูกบล็อก และเมื่อถึง 6,000 รายการจะโหลดได้เฉพาะ
about:addons
-
ครั้งที่ 11: 84,194 รายการ (หลังจากนั้น 6 เดือน)
- ใช้ เครื่องเสมือน (VM) ในสภาพแวดล้อม RAM 16~24GB
- ใช้เวลาดาวน์โหลด 1 ชั่วโมง 43 นาที และบางส่วนขยายถูก Defender ตรวจจับ
- เมื่อเปิด Firefox,
extensions.jsonโตถึง 189MB และถูกบังคับปิดหลัง 39 นาที - จากนั้นลองใหม่ด้วยการรัน
enable.js -
ผลลัพธ์ Launch 1~3
- Launch 1: รอ 39 นาทีโดยไม่มีการเรนเดอร์ แล้วหยุด
- Launch 2: เบราว์เซอร์แสดงขึ้นมา แต่แครชภายใน 3 นาที
- Launch 3: หลังรอนานสามารถ ทำให้เสถียรได้สำเร็จ และยืนยันว่าโหลดส่วนขยาย 84,194 รายการแล้ว
การทดสอบใช้งานเมื่อเปิดทุกส่วนขยาย
-
about:addons
- หน้า Settings โหลดไม่สำเร็จ แต่หน้า index โหลดครบหลังผ่านไป 6 ชั่วโมง
- การใช้หน่วยความจำคงอยู่ที่ 27~37 GiB
- ไอคอนไม่แสดง และการตอบสนองล่าช้ามาก
-
about:support
- แสดงส่วนขยายรวม 84,205 รายการ แต่รวมส่วนขยายในตัวด้วย
- ยืนยันว่าจำนวนส่วนขยายภายนอกที่ติดตั้งจริงคือ 84,194 รายการ
-
about:preferences
- มีตัวเลือก New Tab จำนวนมาก และเกิด การชนกันกับแครช
-
New Tab
- มีเพียง Firefox Home ที่โหลดได้ตามปกติ ส่วนขยายอื่นล้มเหลวทั้งหมด
-
moz-extension
- ส่วนขยาย buyPal เข้ามาแทนแท็บโดยอัตโนมัติ และเป็นตัวเดียวที่โหลดได้ปกติ
- หลังจากนั้น Firefox แครชอีกครั้ง
-
example.com
- แม้รอ 24 ชั่วโมงก็ยังไม่โหลดหน้า คาดว่ามี ส่วนขยายบล็อกจำนวนมาก
-
about:telemetry
- เมื่อคลิก Environment Data จะ แครชทันที
การประเมินความสามารถในการใช้งาน
- เป็นไปไม่ได้
- Firefox แทบทำงานไม่ได้เลยเมื่ออยู่ในสถานะที่ติดตั้งส่วนขยาย 84,000 รายการ
ข้อเสนอสำหรับการสำรวจเพิ่มเติม
- วิเคราะห์สาเหตุที่
about:addonsใช้เวลาโหลด 6 ชั่วโมง และสาเหตุที่example.comไม่โหลด - ทดลองกับเบราว์เซอร์อื่นที่รองรับ
.xpiเช่น Kagi Orion, GNOME Web - ทดลองติดตั้งธีมทั้งหมด (มากกว่า 500,000 รายการ) หรือ user script·style ทั้งหมด
- การติดตั้งส่วนขยายทั้งหมดของ Chrome Web Store นั้น เป็นไปไม่ได้ในแง่ขนาด
สรุปเชิงอรรถ
- มีส่วนขยายทั้งหมด 8 รายการที่สแครปไม่ครบหรือถูกลบ
- หลังเวอร์ชันแรกที่เขียนในเดือนกันยายน 2025 มีการอัปเดตตัวเลขอีกครั้งในเดือนเมษายน 2026
- “Foreshadowing” ถูกกล่าวถึงในฐานะอุปกรณ์ทางวรรณกรรม
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ได้รับรางวัล "Middle Finger Emoji Sticker"
เลยสรุปขั้นตอนแบบสั้น ๆ แล้ว โพสต์ลงบล็อก
ดูต้นฉบับได้ที่ นี่
ทำให้นึกถึงยุค สงครามแถบเครื่องมือของ Internet Explorer
จำได้ว่าตามร้านอินเทอร์เน็ตคาเฟ่มักจะมีแถบเครื่องมือของ Ask.com, Google, Yahoo และต่อมาก็ Bing ติดตั้งไว้อย่างน้อยสองอันเสมอ
ลองไปสืบดูว่าทำไมมันถึงใช้เวลานานขนาดนี้
เมื่อ 13 ปีก่อนยังใช้ extensions.sqlite แทน extensions.json
ตอนนี้โครงสร้างเป็นแบบ serialize แล้วเขียนทับทั้งไฟล์ใหม่ทุก ๆ 20ms เลยไม่มีปัญหาสำหรับส่วนขยาย 15 ตัว แต่พอเป็น 84,194 ตัวก็มีปัญหาแน่
เลยสงสัยว่าตั้งค่า debounce นี้กันอย่างไร และก็น่าสงสัยว่ามีส่วนขยายไหนบ้างที่เขียน extensions.json หลายครั้งต่อวินาที
หน้าเพจจริงแทบเปิดอะไรไม่ขึ้นเลย แต่ตัวบทความอ่านสนุกมากจริง ๆ
ขำมากตรงที่บอกว่า “เปิด crash reporting ไว้แล้ว” ฝั่งทีม Mozilla คงรู้สึกเหมือนเรื่องสยองขวัญ
แต่ยังหาของที่ผู้เขียนอัปโหลดไม่เจอ ดูได้ที่ crash-stats.mozilla.org
ถ้ายังมีโปรไฟล์อยู่ ก็หา crash ID ได้จากคู่มือนี้
บทความนี้ ประหลาดแต่ยอดเยี่ยม มาก
โดยเฉพาะการที่ไปเจอ บั๊กด้านประสิทธิภาพ ในหน้า about: อย่างน้อยหนึ่งหน้า น่าจะต้องมีการสืบต่อจริงจัง
ดูรายชื่อส่วนขยายในรูปแบบ sitemap ก็ได้
Firefox Add-ons sitemap,
Chrome Web Store sitemap,
และ Edge sitemap ก็อ้างอิงได้เช่นกัน
วิดีโอตลกจนถึงกับน้ำตาไหล
นี่คงเป็นความรู้สึกเวลาคนสูงอายุที่แทบไม่รู้เรื่องคอมพิวเตอร์ท่องเว็บแน่ ๆ อยากให้มีคนทำแบบนี้บน Chrome ด้วย
“service mesh นี้ออกแบบมาเกินความจำเป็นสำหรับงานของเรา แต่ broker ก็ช้าเกินไปสำหรับ 84,205 microservices”
ความตึงเครียดไม่รู้จบ แบบนี้คุ้นเคยเหลือเกิน
ทำให้นึกถึง แพ็กเกจ NPM ระดับตำนาน ที่พึ่งพาแพ็กเกจ NPM ทุกตัว
บทความที่เกี่ยวข้อง นี่อ่านแล้วขำจริง
ประโยคที่ว่า “พอติดตั้งส่วนขยายไปแทบทั้งหมดแล้ว สิ่งที่เคยทำมาก่อนหน้านี้ดูงี่เง่าไปเลย” ทำเอาอินมาก
ฉันเองก็รู้สึกถึง ความว่างเปล่า แบบคล้าย ๆ กัน