Show HN: Little Rat - ส่วนขยาย Chrome สำหรับตรวจสอบการเรียกเครือข่ายของส่วนขยายอื่น
(github.com/dnakov)- Little Rat เป็นส่วนขยาย Chrome ขนาดเล็กที่ใช้ตรวจสอบการเรียกเครือข่ายของส่วนขยาย Chrome อื่น ๆ และสามารถบล็อกได้ตามต้องการ
- การตรวจจับและบล็อกทราฟฟิกของส่วนขยายอื่นทำได้เมื่อเปิดแฟลก extensions-on-chrome-urls ที่
chrome://flags/#extensions-on-chrome-urlsหรือรัน Chrome ด้วย--extensions-on-chrome-urls - การติดตั้งแบบแมนนวลใช้ขั้นตอนดาวน์โหลด GitHub ZIP, แตกไฟล์, เปิดใช้งาน Developer mode ใน Chromium/Chrome Extensions และเลือก Load unpacked extension จากไดเรกทอรี
little-rat-main
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผมอยากให้สิ่งนี้เป็น ฟีเจอร์พื้นฐานของ Firefox หรือ Chrome มากกว่าเป็นส่วนขยายของบุคคลที่สาม แบบนั้นอัตราการใช้งานจะมากพอจนเบราว์เซอร์อื่นต้องใส่ใจตามไปด้วย สำหรับส่วนขยายบางตัว ผมอยากอนุญาตเฉพาะคำขอ GET ไปยัง URL แบบคงที่ที่กำหนดไว้ โดยไม่สามารถเปลี่ยน header ได้
แบบนี้ยังอัปเดตข้อมูลได้ แต่ลดความเสี่ยงการรั่วไหลลง บางส่วนขยายทำงานแค่ภายในเบราว์เซอร์ในเครื่อง จึงไม่จำเป็นต้องเข้าถึงเครือข่ายเลยด้วยซ้ำ อย่างไรก็ตาม ถ้ามันแก้ไข source ของหน้าได้ ก็อาจเลี่ยงไปส่งข้อมูลได้อยู่ดี เบราว์เซอร์คงเลยไม่ทำเรื่องนี้ ถึงอย่างนั้น ผมก็คิดว่าน่าลองมากกว่ายอมแพ้แล้วปล่อยให้เป็นหน้าที่ของส่วนขยาย Chrome
ขั้นตอนเกือบเหมือนกับการตรวจสอบ UI คือเปิด remote debugging แล้วเรียก Browser Toolbox: https://superuser.com/questions/1608096/how-to-inspect-firef...
ยังมีประโยชน์เวลาต้องการรู้ว่าต้องใส่อะไรในไฟล์ user-chrome CSS เพื่อปรับหน้าตาแท็บให้มากกว่าแค่ธีม แต่การใช้ user-chrome CSS เองก็ค่อนข้างยุ่งยาก
เพื่อให้มองเห็น request เครือข่ายของส่วนขยาย ผมต้องเปลี่ยนเป็น multi-process mode ซึ่งโดยรวมก็เป็นพฤติกรรมที่สมเหตุสมผล
ตัวอย่างเช่น ภาพที่ uBlock ดึงรายการบล็อกแบบสุ่มที่ผมคลิกเพื่อทดสอบ: https://i.imgur.com/wBYbBM2.png
ภาพที่ Firefox เองอัปเดตรายการ safe-browsing อยู่เบื้องหลัง: https://i.imgur.com/JYxWwjW.png
ส่วนขยายที่ทำมาดีจะมีแจ้งเตือนแค่เป็นครั้งคราว และส่วนขยายที่ต้องใช้เซิร์ฟเวอร์ก็จะขึ้นในจังหวะที่ผู้ใช้คาดว่าจะมีการสื่อสารกับเซิร์ฟเวอร์ ส่วนขยายที่ส่งคีย์ที่พิมพ์หรือข้อมูลน่าสงสัยน่าจะถูกสังเกตเห็นได้ง่ายมาก
แต่สามารถใส่ wildcard ใน URL ได้ และเหมือนจะมีค่าพิเศษที่หมายถึงทุก URL ด้วย ถึงอย่างนั้น ส่วนขยายที่ต้องใช้สิทธิ์แบบนั้นจริง ๆ ก็ควรมีไม่มาก
เช่น ต่อให้ตัวส่วนขยายสร้าง request เองไม่ได้ แต่ถ้ามีสิทธิ์แก้ DOM ของเว็บเพจ ก็มีหลายวิธีที่จะหลอกให้เว็บเพจส่ง request แทน
ส่วนขยายนี้ติดตั้งไม่ง่ายนัก จึงน่าจะเพิ่ม screenshot ที่แสดง network event ที่จับได้จริง ตอนนี้ screenshot ไปบังฟีเจอร์ที่น่าสนใจที่สุดอยู่
จากนั้นกลับไปที่หน้าต่างเบราว์เซอร์ปกติ กดไอคอนส่วนขยายรูปชิ้นจิ๊กซอว์ทางขวาของแถบที่อยู่ แล้วกดไอคอนหมุดเล็ก ๆ ข้าง Little Rat เพื่อติดตั้งและให้แสดงในรายการไอคอนส่วนขยาย
เจ๋งดี พูดตรง ๆ คือแปลกใจที่ทำแบบนี้ได้
ผมไม่แน่ใจว่า API เหล่านี้ให้ข้อมูลอะไรบ้างกันแน่ แต่ถ้าส่วนขยายหนึ่งเข้าถึง request ของอีกส่วนขยายได้ ก็อาจเกิดความกังวลด้านความปลอดภัยกับ ส่วนขยายจัดการรหัสผ่าน หรือส่วนขยายที่ใช้ authentication token ไม่ใช่หรือ?
ดีเลย รู้สึกว่าสิ่งนี้ควรอยู่เป็น chrome:// URL มากกว่า
ดูดีนะ แต่อยากรู้ว่ามีแผน พอร์ตไป Firefox ไหม
มีใครรู้จักทางเลือกที่ทำแบบเดียวกันบน Firefox บ้างไหม?
คุณอาจแปลกใจที่ Mozilla ปล่อยให้การละเมิดนโยบายส่วนขยายอย่างชัดเจนจำนวนไม่น้อยผ่านไปในส่วนขยายที่ “แนะนำ”
[1]: https://firefox-source-docs.mozilla.org/devtools-user/browse...
[2]: https://firefox-source-docs.mozilla.org/networking/http/logg...
[3]: https://firefox-source-docs.mozilla.org/devtools-user/about_...
var chrome = browser;ไว้บนสุดของไฟล์ JS แต่ละไฟล์ ก็อาจทำงานบน Firefox ได้แล้ว Firefox extension API ค่อนข้างเหมือนสำเนาของ Chrome Extension APIs ที่ต่างกันเพียงเล็กน้อยถ้าขึ้น Chrome Store แล้วจะลองใช้
declarativeNetRequest.onRuleMatchedDebug[0] อยู่ ซึ่งดูเหมือนเป็น สำหรับ debug เท่านั้น เลยสงสัยว่าจะได้รับอนุญาตบน Chrome Web Store ไหม0: https://github.com/dnakov/little-rat/blob/f0b9b6be39af9fe7f4...
ทำไมถึงไม่มีใน Chrome Store?
chrome.declarativeNetRequestซึ่งเป็น API ที่ uBlock ก็ใช้อยู่ดูเรียบร้อยดี แต่ส่วนนี้ควรจัดการอย่างระมัดระวังกว่านี้: https://github.com/dnakov/little-rat/blob/main/popup.js#L36
ผมไม่อยากต้องกังวลว่าส่วนขยายอื่นจะฉีด XSS เข้ามาที่นี่ผ่าน request, ID หรือชื่อที่ถูกดัดแปลงได้หรือไม่
unsafe-inlineและ extension ID ถูก Chrome สร้างให้อัตโนมัติแค่ไม่มี network call ไม่ได้พิสูจน์ว่าส่วนขยายนั้นปลอดภัย มันอาจ แคช ข้อมูลที่คุณอยากเก็บเป็นส่วนตัวไว้ แล้วค่อยส่งออกไปเป็นระยะ ๆ ก็ได้