ПЕРВЫЙ ВЗГЛЯД

Реализация внутреннего механизма программирования документов Office 97 наряду с появлением возможностей их настройки на задачи конкретных пользователей имела и весьма неприятное последствие. Ранее безобидные статические документы теперь могли содержать новый компонент - внутренний программный код. А это значит, что файлы Office превратились в потенциальных (и фактических) переносчиков программных вирусов.

Проблема здесь усугубляется тем, что традиционные антивирусные средства часто оказываются неспособны выявлять “вредоносный” код на макроязыке. Механизм же защиты самого Office сводился к тривиальному предупреждению о наличии программного кода в загружаемом документе. Этого было явно недостаточно для нормальной работы пользователя, которому нужно было автоматически определять “свои” документы, содержавшие программы, от файлов неизвестного происхождения. Решение этой проблемы в Office 2000 было предложено в виде реализации механизма цифровой подписи для сертификации программного кода документов.

Однако, как мы уже отмечали (см. PC Week/RE, № 44/99, с. 26), реализация этого механизма пока далека от совершенства и требует доработки. Проведенное дополнительное тестирование выявило ряд серьезных проблем (детальное описание методики тестирования находится по адресу: www.visual.2000/develop/testlab/word2000.htm).

С помощью автономной утилиты SelfCert.exe из состава Office 2000 разработчик может создавать собственную электронную подпись. Но как удалить ненужные подписи? На этот вопрос справка Office не дает ответа. Оказывается, для удаления необходимо использовать совсем другую программу - Internet Explorer 5.0 (воспользоваться командой “Сервис|Свойства обозревателя”, далее выбрать вкладку “Содержание”, нажать кнопку “Сертификатов...”, открыть вкладку “Личные” в окне “Диспетчер сертификатов” и там уже проводить операции с сертификатами).

Обнаружена также проблема с установкой цифровой подписи в VBA-проекте. В ряде случаев (например, когда в программе используется внешний ActiveX-объект, но связь с ним не установлена с помощью команды Tools|Reference) проект можно сохранить только после удаления подписи. При попытке записи с электронной подписью (чужой или своей) операция не выполняется и при этом выдается неверная диагностика о якобы нехватке места на диске.

Выяснилось также, что в целом ряде случаев Word 2000 вообще не производит проверку загружаемых шаблонов на наличие макрокода. Это, в частности, происходит при использовании глобальных шаблонов, а также при загрузке шаблонов в виде автономных документов или присоединенного файла из специального каталога “Шаблоны пользователя”.

Еще более странно выглядит ситуация, когда по совершенно непонятным причинам программный код шаблонов и документов Word становится просто недоступным в среде VBA. То есть, создав шаблон, разработчик лишается возможности коррекции его кода в дальнейшем. (Это происходит далеко не для всех шаблонов, но можно привести пример с неожиданной блокировкой кода.)

Впрочем, дело, возможно, каким-либо образом изменится с выходом пакета обновлений для MS Office 2000. Будем ждать.

Вы сталкивались с подобными проблемами в MS Office 2000? Поделитесь с нами своей информацией на этот счет. С автором данной статьи можно связаться по адресу: akolesov@glasnet.ru.