Pull to refresh

Запрещаем менять настройки браузера

Reading time 2 min
Views 23K

Вчера на работе мне понадобилось настроить браузеры Firefox на тонких клиентах нашего интернет-кабинета таким образом, чтобы пользователи не смогли изменить некоторые настройки в браузере и сидеть в интернете в обход прокси. Поиск в интернете и дальнейшая настройка сподвигли меня на написание данной статьи. Здесь я расскажу, как можно заблокировать некоторые параметры браузера от изменения шаловливыми ручками пользователей.

Создадим файл mozilla.txt с примерно таким содержимым:

//
lockPref("browser.startup.homepage", "http://habrahabr.ru");
lockPref("network.proxy.type", 1);
lockPref("network.proxy.http", "192.168.1.1");
lockPref("network.proxy.http_port", 3128);
lockPref("network.proxy.no_proxies_on", "localhost, 127.0.0.1");


Первой строкой обязательно должны идти два символа слэша (//). Названия нужных параметров и их значения можно посмотреть, набрав в браузере about:config. На этом примере я запретил пользователям менять настройки нашего прокси и домашнюю страницу.

Теперь нужно все символы этого файла сместить на 13 позиций в ASCII-таблице и получить зашифрованный файл mozilla.cfg.
Для этого используем онлайн-сервис Automatic Mozilla Configurator.
Под Windows можно воспользоваться программой ByteShifter, там же есть версия под Linux, но у меня она не заработала. Лучше создать такой perl-скрипт:

#!/usr/bin/perl
# Byteshifting program for mozilla's netscape.cfg files
# Old netscape 4.x uses a bytechift of 7
# To decode: moz-byteshift.pl -s -7 <netscape.cfg >netscape.cfg.txt
# To encode: moz-byteshift.pl -s 7 <netscape.cfg.txt >netscape.cfg
# Mozilla uses a byteshift of 13
# To decode: moz-byteshift.pl -s -13 <mozilla.cfg >mozilla.txt
# To encode: moz-byteshift.pl -s 13 <mozilla.txt >mozilla.cfg

use strict;
use Getopt::Std;
use vars qw/$opt_s/;
getopts("s:");
die "Missing shift\n" if (!defined $opt_s);
my $buffer;
while(1) {
my $n=sysread STDIN, $buffer, 1;
last if ($n eq 0);
my $byte = unpack("c", $buffer);
$byte += 512 + $opt_s;
$buffer = pack("c", $byte);
syswrite STDOUT, $buffer, 1;
}


Сохраним файл как mozilla_byteshift.pl, сделаем его исполняемым:
$ chmod +x mozilla_byteshift.pl

Положим в папку со скриптом наш файл mozilla.txt и выполним в терминале:
$ ./mozilla_byteshift.pl -s 13 <mozilla.txt >mozilla.cfg

Полученный файл mozilla.cfg нужно положить в папку с исполняемым файлом Firefox:
Для Linux обычно: /usr/lib/firefox/
Для Windows обычно: C:\Program Files\Mozilla Firefox\

Теперь откроем по этому пути подкаталог ./greprefs и там найдем файл all.js. Откроем этот файл в текстовом редакторе и в конец добавим такую строку:
pref("general.config.filename", "mozilla.cfg");
Сохраним изменения.

Запускаем Firefox и смотрим:


Все наши запрещенные настройки теперь недоступны для изменения!
Tags:
Hubs:
+62
Comments 57
Comments Comments 57

Articles