Czy administratorzy mogą w jakiś sposób uniemożliwić użytkownikom instalowanie rozszerzeń przeglądarki Firefox?


13

Czy istnieje sposób na wyłączenie instalacji rozszerzeń Firefox przez użytkowników niebędących administratorami?

Odpowiedzi:


12

Raczej. Możesz zastosować ustawienia blokady za pomocą mozilla.cfg. To jednak uniemożliwi wszystkim użytkownikom korzystanie z zablokowanych funkcji. Administratorzy mogą oczywiście dowolnie zamieniać plik konfiguracyjny.

Oto lista ustawień, które wdrażamy za pomocą blokady. Jest to środowisko K-12, więc Twoje potrzeby prawdopodobnie będą się różnić.

//
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);

Zobacz także zablokowane ustawienia konfiguracji w oficjalnych dokumentach Mozilla.org.


6

Jest to odmiana skompilowana z pomocnych szczegółów @ MDN , MozillaZine , PCC-Services , Mike's Musings

Aby zablokować / zapobiec rozszerzeniom (dołącz to do pliku blokady (polityki) ):

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

Podwójne ukośniki (//) poza kodem oznaczają komentarze.

lockPref()Określa polityka czyli obowiązkowych - Użytkownicy nie mogą modyfikować, podczas defaultPref()lub pref()Określa preferencji tj nonmandatory - użytkownicy mogą modyfikować początkowo ustawiona wartość.

Ustawienie wartości falsexpinstall.enabled powoduje wyłączenie wszystkich instalacji za pośrednictwem (uruchomionego) Firefoksa, tj. Instalacji ze stron internetowych, Narzędzia> Dodatki> [Pobierz dodatki | Pasek wyszukiwania | ikona koła zębatego], Plik> Otwórz plik i przeciągnij i upuść. Formaty instalatora to .xpi i .jar.

Ustawienie extensions.enabledScopesna 0 wyłącza wszystkie (oprócz użytkownika (profil) folderu (zakres 1) , i folderów administrator ) zalogowany / instrukcja odkrycie (raz na każde Firefoksa starcie) lokalizacjach.

Lokalizacja hybrydowa (użytkownika) Scope 1 (folder „rozszerzeń” profilu użytkownika) jest jedynym magazynem pierwszej metody instalacji i jest przestarzała, ustawiając xpinstall.enabled na false, ale nie jest wykrywana (extensions.enabledScopes) jako wykryta lokalizacja (druga metoda instalacji). Drugi blok kodu powyżej generuje błąd za każdym razem, gdy pojawia się ta lokalizacja, a Firefox kończy działanie.

about: config , about: config Wpisy , rozszerzenie Config Descriptions , instalowanie rozszerzeń , specjalne lokalizacje


Zatwierdzone rozszerzenia

Aby włączyć zatwierdzone rozszerzenia przez Firefox katalog_instalacyjny \ przeglądarka \ rozszerzenia , ustaw extensions.enabledScopesna 4 i dodajlockPref("extensions.autoDisableScopes", 11);

Alternatywnie (w systemie Windows), aby włączyć zatwierdzone rozszerzenia za pomocą rejestru Windows HKLM , ustaw extensions.enabledScopesna 8 i extensions.autoDisableScopesna 7 . Odpowiednikiem w GNU / Linux jest / usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}

Aby włączyć obie lokalizacje, użyj odpowiednio 12 i 3 .

Jest również możliwe lockPref()lub defaultPref()ustawienia tych rozszerzeń, które integrują ich konfiguracji w about: config; zwykle poszczególne klucze w about: config zawierałyby nazwę rozszerzenia lub część nazwy lub em: id .


Sklep wewnętrzny, rozszerzenia scentralizowane ( FoxyProxy jako przykład):

Pobierz i rozpakuj FoxyProxy do podfolderu najwyższego poziomu w udziale sieciowym (np. FxExts udziału sieciowego i podfolder foxyproxy ). Następnie zmień nazwę podfolderu foxyproxy na wartość między znacznikami em: id w rozpakowanym pliku install.rdf - nazwa foxyproxy zostaje zmieniona na foxyproxy@eric.h.jung .

Następnie w pliku tekstowym wprowadź ścieżkę w pierwszym wierszu, tj. \\ server \ FxExts \ foxyproxy@eric.h.jung , a także zmień nazwę pliku tekstowego (w tym rozszerzenie .txt) na wartość em: id - Nowość Tekst Document.txt zostaje przemianowany na foxyproxy@eric.h.jung .

Te pliki tekstowe mogą być dystrybuowane do istniejącego katalogu katalog_instalacyjny \ przeglądarki \ rozszerzenia Firefox lub zawarte w jądrze instalatora Firefox \ przeglądarka \ rozszerzenia .

  • Przy każdym uruchomieniu Firefox przegląda pliki tekstowe i usuwa (na kontach administratora) wszelkie błędy lub jeśli udział jest w danym momencie niedostępny. Aby temu zapobiec po przetestowaniu, użyj zasad grupy, aby [ustawić Odmów powoduje usunięcie uprawnień do folderów rozszerzeń i / lub offline buforować udział ( FxExts )].

Alternatywnie lub dodatkowo za pośrednictwem rejestru HKLM: Nazwa foxyproxy@eric.h.jung i Data \\ server \ FxExts \ foxyproxy@eric.h.jung

W obu przypadkach (zakres 4 i 8):

  • Aby wyłączyć rozszerzenie, zmień nazwę pliku install.rdf rozszerzenia docelowego na, na przykład disabled.rdf.

  • Aby zaktualizować rozszerzenie, usuń zawartość w podfolderze i rozpakuj nowy XPI. Zwykle unikalny em: id byłby taki sam.

Jeśli extensions.autoDisableScopesjest ustawiony na 15 , użytkownicy będą mogli wyszukiwać i aktywować preferowane rozszerzenia za pomocą Narzędzia (Alt + T)> Dodatki: Pasek wyszukiwania. Alternatywnie, włącz jedną lokalizację dla automatycznie aktywowanych rozszerzeń, które pozostawią drugą dla użytkowników (ręcznie) aktywowanych rozszerzeń.


Filtrowanie zasad (selektywnie zastosuj ustawienia w pliku blokady):

W systemie Windows odmów uprawnień do odczytu danych w pliku local-settings.js, aby użytkownicy / grupy zostali zwolnieni. W systemach GNU / Linux jedną z opcji byłoby ustawienie podstawowych uprawnień local-settings.js na 0600 (z rootem jako ug), dodanie wszystkich użytkowników do grupy (np. Fxgrp) z pominięciem użytkowników, którzy mają być zwolnieni, i wtedysetfacl -m g:fxgrp:r local-settings.js

Należy pamiętać, że używanie zmiennych środowiskowych systemu operacyjnego jest niebezpieczne, ponieważ można je ominąć, chyba że zostaną wprowadzone dodatkowe środki poza plikiem blokady (zasad).


Różne: pasek poleceń konsoli przeglądarki można wyłączyć za pomocą reguły CSS w arkuszu stylów, np. .jsterm-input-container {display:none;}Aby scentralizować ten arkusz stylów za pomocą pliku blokady (zasad):

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 (arkusz stylów) jest również ładowany w trybie awaryjnym Firefoksa i może określać zarówno zasady chrome (Firefox UI), jak i treść ( strony wewnętrzne, strony internetowe). W przypadku podłączeń NFS, SMB lub lokalnego systemu plików użyjfile:///

[ userChrome i userContent ] .css mają najwyższy priorytet, więc dobrze byłoby też sprawdzić folder chrome , np.var profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )

Chrome nazwy i identyfikatory elementów , chrome URL , Working with Chrome URL

Inne narzędzia i GCLI można wyłączyć zgodnie z potrzebami za pomocą pliku blokady (polityki) - filtr dla devtools*enabledabout: config.

Aby uzyskać szczegółowe informacje na temat nsInterfaces w Components.interfaces. * Zobacz interfejsy XPCOM .

PS: Aby niezawodnie wychwycić błędy i warunki w pliku .cfg niektórych wydań Firefoksa, może być konieczne umieszczenie całej zawartości blokady (polityki) w bloku try, np. try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }Opcjonalnie również Services.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");w bloku catch (e) {}.

XPConnect , interfejsy XPCOM , JSCM , omni.ja , odniesienie JS , szybkie JS , JS


6

Zapobieganie instalowaniu dodatków przez użytkowników jest trudniejsze w późniejszych wersjach Firefoksa. Firefox nie honoruje preferencji xpinstall.enabled w niektórych wersjach. (Edycja: patrz komentarz poniżej: przestrzegają tych preferencji od wersji 31)

Szczegółowy opis modyfikowania Firefoksa, aby nie wyświetlał się Menedżer dodatków i jak użytkownicy nie mogli instalować dodatków, przeczytaj ten artykuł .

Instrukcje nie są dla osób o słabym sercu, ale działają; Mam 700 maszyn zamkniętych w środowisku K-8 przy użyciu tych wskazówek.

Więcej informacji na temat blokowania ustawień przeglądarki znajduje się w tym artykule .


Świetna odpowiedź następcza. Nasza dzielnica chce porzucić Firefoksa z powodu tych trudności z konfiguracją. Ponieważ Google zaczyna oferować własne obiekty GPO , Chrome prawdopodobnie stanie się alternatywą IE na wszystkich komputerach.
jscott

1
Firefox faktycznie honoruje „xpinstall.enabled” od Firefox 31.
Justin Skiles,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.