firefox policies generator PoC.

This commit is contained in:
Miroslav Šedivý
2021-07-24 16:39:53 +02:00
parent cdf3bf115f
commit 1881caa8cf
2 changed files with 219 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
package firefox
import (
_ "embed"
"encoding/json"
"net/url"
)
type Settings struct {
Bookmarks []string `json:"bookmarks"`
Extensions map[string]string `json:"extensions"`
DeveloperTools bool `json:"developer_tools"`
}
//go:embed policies.json
var policiesJson string
func Generate(settings Settings) (string, error) {
policiesObj := struct {
Policies map[string]interface{} `json:"policies"`
}{}
if err := json.Unmarshal([]byte(policiesJson), &policiesObj); err != nil {
return "", err
}
//
// Bookmarks
//
// Do not append
//Bookmarks := policiesObj.Policies["Bookmarks"].([]interface{})
Bookmarks := []interface{}{}
for _, URL := range settings.Bookmarks {
title := URL
if u, err := url.Parse(URL); err == nil {
title = u.Hostname()
}
Bookmarks = append(Bookmarks, map[string]interface{}{
"Title": title,
"URL": URL,
//"Favicon": URL + "/favicon.ico",
"Folder": "Pages",
"Placement": "toolbar",
})
}
if len(settings.Bookmarks) > 0 {
policiesObj.Policies["Bookmarks"] = Bookmarks
}
//
// Extensions
//
// Do not append
//Extensions := policiesObj.Policies["ExtensionSettings"].(map[string]interface{})
Extensions := map[string]interface{}{}
// block all
Extensions["*"] = map[string]interface{}{
"installation_mode": "blocked",
}
for id, url := range settings.Extensions {
Extensions[id] = map[string]interface{}{
"install_url": url,
"installation_mode": "force_installed",
}
}
if len(settings.Extensions) > 0 {
policiesObj.Policies["ExtensionSettings"] = Extensions
}
//
// DeveloperTools
//
policiesObj.Policies["DisableDeveloperTools"] = settings.DeveloperTools
data, err := json.MarshalIndent(policiesObj, "", " ")
if err != nil {
return "", err
}
return string(data), nil
}
+129
View File
@@ -0,0 +1,129 @@
{
"policies": {
"BlockAboutAddons": false,
"BlockAboutConfig": true,
"BlockAboutProfiles": true,
"BlockAboutSupport": true,
"Bookmarks": [
{
"Title": "IPLeak",
"URL": "https://ipleak.net/",
"Favicon": "https://ipleak.net/favicon.ico",
"Folder": "Pages",
"Placement": "toolbar"
},
{
"Title": "YouTube",
"URL": "https://www.youtube.com/",
"Favicon": "https://www.youtube.com/favicon.ico",
"Folder": "Pages",
"Placement": "toolbar"
},
{
"Title": "Google",
"URL": "https://www.google.com/",
"Favicon": "https://www.google.com/favicon.ico",
"Folder": "Pages",
"Placement": "toolbar"
}
],
"CaptivePortal": false,
"DisableAppUpdate": true,
"DisableBuiltinPDFViewer": true,
"DisableDeveloperTools": false,
"DisableFeedbackCommands": true,
"DisableFirefoxAccounts": true,
"DisableFirefoxScreenshots": true,
"DisableFirefoxStudies": true,
"DisableForgetButton": true,
"DisableMasterPasswordCreation": true,
"DisablePocket": true,
"DisablePrivateBrowsing": true,
"DisableProfileImport": true,
"DisableProfileRefresh": true,
"DisableSafeMode": true,
"DisableSetDesktopBackground": true,
"DisableSystemAddonUpdate": true,
"DisableTelemetry": true,
"DisplayBookmarksToolbar": false,
"DontCheckDefaultBrowser": true,
"EnableTrackingProtection": {
"Cryptomining": true,
"Fingerprinting": true,
"Value": true
},
"ExtensionSettings": {
"*": {
"installation_mode": "blocked"
},
"nordvpnproxy@nordvpn.com": {
"install_url": "https://addons.mozilla.org/firefox/downloads/latest/nordvpn-proxy-extension/latest.xpi",
"installation_mode": "force_installed"
},
"uBlock0@raymondhill.net": {
"install_url": "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi",
"installation_mode": "force_installed"
}
},
"ExtensionUpdate": false,
"FirefoxHome": {
"Highlights": false,
"Pocket": false,
"Search": true,
"Snippets": false,
"TopSites": true
},
"FlashPlugin": {},
"HardwareAcceleration": false,
"Homepage": {
"Additional": [],
"StartPage": "home"
},
"NewTabPage": true,
"NoDefaultBookmarks": true,
"OfferToSaveLogins": false,
"OfferToSaveLoginsDefault": false,
"OverrideFirstRunPage": "",
"OverridePostUpdatePage": "",
"PasswordManagerEnabled": false,
"Permissions": {
"Camera": {
"BlockNewRequests": true
},
"Location": {
"BlockNewRequests": true
},
"Microphone": {
"BlockNewRequests": true
},
"Notifications": {
"BlockNewRequests": true
}
},
"Preferences": {
"browser.tabs.warnOnClose": false,
"browser.urlbar.suggest.bookmark": false,
"browser.urlbar.suggest.history": false,
"browser.urlbar.suggest.openpage": false,
"datareporting.policy.dataSubmissionPolicyBypassNotification": true,
"dom.disable_window_flip": true,
"dom.disable_window_move_resize": true,
"dom.event.contextmenu.enabled": false,
"extensions.getAddons.showPane": false,
"places.history.enabled": false,
"privacy.file_unique_origin": true,
"ui.key.menuAccessKeyFocuses": false
},
"PromptForDownloadLocation": false,
"SanitizeOnShutdown": {
"Cache": true,
"Cookies": true,
"Downloads": true,
"FormData": true,
"History": true,
"OfflineApps": true,
"Sessions": true,
"SiteSettings": true
}
}
}