มีวิธีสำหรับผู้ดูแลระบบในการปิดการใช้งานผู้ใช้จากการติดตั้งส่วนขยายของ Firefox หรือไม่?


คำตอบ:


12

เรียงจาก คุณสามารถใช้การตั้งค่าล็อคลงด้วย mozilla.cfg อย่างไรก็ตามสิ่งนี้จะป้องกันไม่ให้ผู้ใช้ทุกคนใช้คุณสมบัติที่ล็อคไว้ ผู้ดูแลระบบสามารถสลับเข้า / ออกไฟล์ปรับแต่งได้ตามต้องการ

นี่คือรายการการตั้งค่าที่เราปรับใช้ผ่านการล็อค มันเป็นสภาพแวดล้อม K-12 ดังนั้นความต้องการของคุณจะแตกต่างกันไป

//
lockPref("app.update.auto", false);
lockPref("app.update.enabled", false);
lockPref("app.update.silent", true);
lockPref("browser.cache.disk.capacity", 1000);
lockPref("browser.download.useDownloadDir", false);
lockPref("browser.rights.3.shown", true);
lockPref("browser.search.update", false);
lockPref("browser.shell.checkDefaultBrowser", false);
lockPref("extensions.update.enabled", false);
lockPref("plugin.default_plugin_disabled", false);
lockPref("plugin.scan.plid.all", true);
lockPref("plugins.hide_infobar_for_missing_plugin", true);
lockPref("profile.allow_automigration", false);
lockPref("signon.prefillForms", false);
lockPref("signon.rememberSignons", false);
lockPref("startup.homepage_override_url", "");
lockPref("startup.homepage_welcome_url", ""); 
lockPref("xpinstall.enabled", false);
lockPref("xpinstall.whitelist.required", true);

ดูการตั้งค่าคอนฟิกที่ล็อกไว้บนเอกสารอย่างเป็นทางการของ Mozilla.org


6

นี่คือรูปแบบที่รวบรวมจากรายละเอียดที่เป็นประโยชน์ @ MDN , MozillaZine , บริการ PCC , Mike's Musings

หากต้องการบล็อก / ป้องกันส่วนขยาย (รวมไว้ในไฟล์ล็อค (นโยบาย) ):

lockPref("xpinstall.enabled", false);
lockPref("extensions.enabledScopes", 0);   // Or 4 or 8 for approved extensions

Components.utils.import("resource://gre/modules/FileUtils.jsm");
var profExtDir = FileUtils.getDir("ProfD", ["extensions"], false, false);
if ( profExtDir.exists() )
Tech_a_break;             // here anything undefined would suffice

เครื่องหมายทับ (//) นอกโค้ดแสดงถึงความคิดเห็น

lockPref()ระบุนโยบายเช่นบังคับ - ผู้ใช้ไม่สามารถแก้ไขได้ในขณะที่ defaultPref()หรือpref()ระบุการตั้งค่าเช่น nonmandatory - ผู้ใช้อาจแก้ไขค่าเริ่มต้น

การตั้งค่าxpinstall.enabledการเท็จพิการติดตั้งทั้งหมดผ่าน (ที่ทำงาน) Firefox คือการติดตั้งจากเว็บไซต์ Tools> Add-ons> [รับ Add-ons | แถบค้นหา ไอคอนเฟือง], ไฟล์> เปิดไฟล์และลาก -n'-drop รูปแบบตัวติดตั้งคือ. xpi และ. jar

การตั้งค่าextensions.enabledScopesเป็น0จะปิดใช้งานทุกโฟลเดอร์ (ยกเว้นผู้ใช้ (โปรไฟล์) (ขอบเขต 1)และโฟลเดอร์ผู้ดูแลระบบ ) ออฟไลน์ / การค้นพบด้วยตนเอง (หนึ่งครั้งในทุกการเริ่มต้น Firefox)

(ผู้ใช้) ตำแหน่งขอบเขตไฮบริด 1 (โฟลเดอร์ 'ส่วนขยาย' ของโปรไฟล์ผู้ใช้)เป็นร้านค้าเพียงแห่งเดียวของวิธีการติดตั้งครั้งแรกและล้าสมัยโดยการตั้งค่า xpinstall.enabled เป็นเท็จ แต่ไม่ได้กำหนดขอบเขต (ส่วนขยายเปิดใช้งานขอบเขต) เป็นตำแหน่งที่ค้นพบ (วิธีการติดตั้งที่สอง) บล็อกโค้ดที่สองด้านบนจะพ่นข้อผิดพลาดเมื่อใดก็ตามที่ตำแหน่งนี้ปรากฏขึ้นและ Firefox ออก

about: config , about: config Entries , ส่วนขยายคำอธิบายการกำหนดค่า , การติดตั้งส่วนขยาย , สถานที่พิเศษ


ส่วนขยายที่อนุมัติ

หากต้องการเปิดใช้งานส่วนขยายที่ผ่านการอนุมัติผ่าน Firefox install_directory \ browser \ extensionsให้ตั้งค่าextensions.enabledScopesเป็น4และเพิ่มlockPref("extensions.autoDisableScopes", 11);

หรืออีกวิธีหนึ่ง (ใน Windows) เพื่อให้ได้รับการอนุมัตินามสกุลผ่าน Windows รีจิสทรีHKLMตั้งextensions.enabledScopesไป8และextensions.autoDisableScopesการ7 สิ่งที่เทียบเท่าใน GNU / Linux คือ/ usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}

หากต้องการเปิดใช้งานทั้งสองสถานที่ให้ใช้12และ3ตามลำดับ

อาจเป็นไปได้lockPref()หรือdefaultPref()การตั้งค่าของส่วนขยายเหล่านั้นที่รวมการกำหนดค่าของพวกเขาใน about: config; มักจะเป็นคีย์โดยเฉพาะอย่างยิ่งเกี่ยวกับ config จะรวมถึงชื่อนามสกุลหรือส่วนหนึ่งของชื่อหรือem: ID


ร้านค้าภายในส่วนขยายส่วนกลาง ( FoxyProxyเป็นตัวอย่าง):

ดาวน์โหลดและคลายซิป FoxyProxy ลงในโฟลเดอร์ย่อยระดับบนสุดในเครือข่ายแชร์ (เช่นเครือข่ายแบ่งปันFxExtsและโฟลเดอร์ย่อยfoxyproxy ) ถัดไปเปลี่ยนชื่อFoxyProxyโฟลเดอร์ย่อยที่มีค่าระหว่างem: รหัสแท็กในซิปinstall.rdfไฟล์ - FoxyProxyจะเปลี่ยนชื่อเป็นfoxyproxy@eric.h.jung

ถัดไปในไฟล์ข้อความให้ป้อนพา ธ ในบรรทัดแรกเช่น\\ server \ FxExts \ foxyproxy@eric.h.jungและเปลี่ยนชื่อไฟล์ข้อความ (รวมถึงส่วนขยาย. txt) ด้วยค่าem: id - ใหม่ ข้อความ Document.txtถูกเปลี่ยนชื่อเป็นfoxyproxy@eric.h.jung

ไฟล์ข้อความเหล่านี้สามารถกระจายไปยังมีอยู่ Firefox install_directory \ เบราว์เซอร์ \ ส่วนขยายหรือรวมอยู่ใน Firefox ติดตั้งหลัก \ เบราว์เซอร์ \ นามสกุล

  • ทุกครั้งที่เริ่มต้น Firefox จะต้องผ่านไฟล์ข้อความและจะลบ (ภายใต้บัญชีผู้ดูแลระบบ) หากเกิดข้อผิดพลาดหรือไม่สามารถแชร์ได้ในเวลานั้น เพื่อป้องกันสิ่งนี้หลังจากการทดสอบให้ใช้นโยบายกลุ่มเพื่อ [ตั้งปฏิเสธปฏิเสธการอนุญาตในโฟลเดอร์ส่วนขยายและ / หรือแคชแบบออฟไลน์ที่แชร์ ( FxExts )]

หรือเพิ่มเติมผ่านทางรีจิสทรี HKLM: ชื่อfoxyproxy@eric.h.jungและ Data \\ server \ FxExts \ foxyproxy@eric.h.jung

ในกรณีใดกรณีหนึ่งหรือทั้งสองอย่าง (ขอบเขต 4 และ 8):

  • หากต้องการปิดใช้งานส่วนขยายให้เปลี่ยนชื่อinstall.rdfของส่วนขยายเป้าหมายเป็นdisabled.rdf

  • หากต้องการอัปเดตส่วนขยายให้ลบเนื้อหาในโฟลเดอร์ย่อยและขยาย XPI ใหม่ออก โดยปกติแล้วem: idจะเหมือนกัน

หากextensions.autoDisableScopesตั้งค่าเป็น15ผู้ใช้จะสามารถค้นหาและเปิดใช้งานส่วนขยายที่ต้องการผ่านเครื่องมือ (Alt + T)> ส่วนเสริม: แถบค้นหา หรือเปิดใช้ตำแหน่งเดียวสำหรับส่วนขยายที่เปิดใช้งานอัตโนมัติซึ่งจะปล่อยให้อีกส่วนหนึ่งเป็นส่วนขยายที่เปิดใช้งานโดยผู้ใช้ (ด้วยตนเอง)


การกรองนโยบาย (เลือกใช้การตั้งค่าในไฟล์ล็อค):

ใน Windows ปฏิเสธการอ่านข้อมูลสิทธิ์บนlocal-settings.jsเพื่อให้ผู้ใช้ / กลุ่มได้รับการยกเว้น ในระบบ GNU / Linux ทางเลือกหนึ่งคือการตั้งค่าการอนุญาตพื้นฐานของlocal-settings.jsเป็น 0600 (โดย root เป็น ug) ให้เพิ่มผู้ใช้ทั้งหมดในกลุ่ม (เช่น fxgrp) โดยไม่ให้ผู้ใช้ที่ได้รับการยกเว้น แล้วsetfacl -m g:fxgrp:r local-settings.js

โปรดทราบว่าการใช้ตัวแปรสภาพแวดล้อม OS นั้นไม่ปลอดภัยเนื่องจากสามารถข้ามได้เว้นแต่จะมีการใช้มาตรการพิเศษนอกไฟล์ล็อค (นโยบาย)


อื่น ๆ : แถบคำสั่งของคอนโซลเบราว์เซอร์สามารถปิดการใช้งานโดยกฎ CSS ในสไตล์ชีตเช่น.jsterm-input-container {display:none;}ในการรวมศูนย์สไตล์ชีทนี้ผ่านไฟล์ล็อค (นโยบาย)

var css = Components.classes["@mozilla.org/content/style-sheet-service;1"]
.getService(Components.interfaces.nsIStyleSheetService);

var ioSvc = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI("file://///server/share/Fx.css", null, null);
css.loadAndRegisterSheet(ioSvc, 1);

Fx.css (สไตล์ชีท) ถูกโหลดในFirefox Safe Modeด้วยและสามารถระบุกฎทั้งchrome (Firefox UI) และเนื้อหา ( หน้าภายในหน้าเว็บ) สำหรับการเมาต์ NFS หรือ SMB หรือระบบไฟล์โลคัลให้ใช้file:///

[ userChromeและuserContent ] .css มีลำดับความสำคัญสูงสุดดังนั้นจึงเป็นการดีที่จะตรวจสอบโฟลเดอร์chromeเช่นกันvar profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )

โครเมี่ยมชื่อองค์ประกอบและรหัส , Chrome URL ที่ , ทำงานกับ URL โครเมี่ยม

เครื่องมืออื่น ๆและGCLIสามารถปิดการใช้งานได้ตามต้องการผ่านไฟล์ล็อค (นโยบาย) - ตัวกรองสำหรับdevtools*enabledabout: config

สำหรับรายละเอียดเกี่ยว nsInterfaces ใน Components.interfaces ได้. * โปรดดูXPCOM อินเตอร์เฟซ

PS: เพื่อตรวจสอบข้อผิดพลาดและเงื่อนไขในไฟล์. cfg ของ Firefox บางรุ่นได้อย่างน่าเชื่อถือคุณอาจจำเป็นต้องใส่เนื้อหาทั้งหมด (นโยบาย) ที่ล็อคไว้ในบล็อกลองเช่นtry { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }ทางเลือกยังรวมServices.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");อยู่ในบล็อก catch (e) {}

XPConnect , XPCOM อินเตอร์เฟซ , JSCM , omni.ja , อ้างอิง JS , JS รวดเร็ว , JS


6

การป้องกันผู้ใช้จากการติดตั้ง addons นั้นยากกว่าใน Firefox รุ่นที่ใหม่กว่า Firefox ไม่เคารพ xpinstall.enabled ในบางรุ่น (แก้ไข: ดูความคิดเห็นด้านล่าง: พวกเขาเคารพการตั้งค่านี้ ณ วันที่ 31)

สำหรับรายละเอียดเขียนขึ้นเกี่ยวกับวิธีการแก้ไขเพื่อป้องกันไม่ให้ Firefox Add-on ผู้จัดการจากการแสดงและวิธีการป้องกันผู้ใช้จากการติดตั้ง Add-on, ตรวจสอบบทความนี้

คำแนะนำนั้นไม่ได้มีไว้สำหรับคนที่ใจหดหู่ แต่ทำงานได้ดี ฉันมีเครื่อง 700 เครื่องถูกล็อคในสภาพแวดล้อม K-8 โดยใช้เส้นทางเหล่านี้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลงล็อคการตั้งค่าเบราว์เซอร์, ตรวจสอบบทความนี้


คำตอบติดตามที่ยอดเยี่ยม เขตของเรากำลังมองหาคลองสำหรับปัญหาการตั้งค่าที่แน่นอนเหล่านี้ เมื่อ Google เริ่มเสนอ GPO ของตนเอง Chrome น่าจะเป็นทางเลือก IE ในทุกเครื่อง
jscott

1
Firefox ในความเป็นจริงจะให้เกียรติ "xpinstall.enabled" ณ วันที่ Firefox 31.
Justin Skiles
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.