Июнь 4, 2004
Что SP2 грядущий нам готовит
В преддверии выхода Windows XP Service Pack 2 компания Microsoft опубликовала рекомендации для веб-разработчиков по обеспечению нормальной работы вебсайтов в условиях повышенной безопасности данного комплекта обновлений. Напомню, что SP2 выйдет, предположительно, в августе этого года.
Если ваш сайт использует элементы Microsoft ActiveX
Microsoft Internet Explorer будет блокировать ActiveX в следующих случаях:
- Ссылка вебсайта ведёт на страницу, которая пытается установить элемент ActiveX.
- Страница, которая выдаёт запрос об установке ActiveX.
- Предыдущая и проверенная версия элемента ActiveX уже не установлена. Существующий элемент ActiveX считается проверенным, если соблюдены следующие условия:
- Глобальный идентификатор (GUID) нового компонента такой же, что и у существующего.
- И новый, и существующий компоненты подписаны цифровой подписью Microsoft Authenticode®, плюс сертификат, выданный одной компанией и на одну и ту же программу.
Убедитесь, что все элементы управления на вашем сайте содержат действующие подписи. Кроме того, все файлы DLL и CAB должны быть подписаны. Если подиси нет или она не действительна, Internet Explorer будет блокировать установку таких компонентов.
Если ваш сайт содержит страницу, которая перенаправляет пользователя на другую в зависимости от того, был ли установлен компонент или нет: рекомендуемое решение — поместить внутри тега object пояснение, по какой причине страница не могла быть загружена. В противном случае пользователь будет перенаправлен на страницу после того, как Information Bar заблокирует установку компонента и шанса установить его больше не будет.
Если на вашем сайте присутствует диалог механизма проверки Authenticode, рекомендуется обновить его в соответствии с дизайном нового интерфейса.
Общие рекомендации
Не заставляйте пользователей понижать уровень безопасности до момента, когда ActiveX не подвергается проверке.
На вашем сайте можно загружать файлы
Загрузка файлов будет блокироваться в следующих случаях:
- Вебсайт пытается перейти на ссылку с файлом.
- Ссылка, которая приводит к появлению диалога о загрузке файла.
- Загрузка происходит без участия пользователя (нажатие по ссылке мышкой или кнопкой на клавиатуре).
Таким образом, на сайте просто не должно быть какой-либо автоматической загрузки.
Расширение и Content-Type всех файлов на сайте должны соответствовать типу файлов. Это же правило должно соблюдаться и для веб-страниц. Если их Content-Type является plain/text, страницы не будут отображаться в виде HTML.
Ваш сайт использует pop-up (всплывающие) окна
При помощи метода window.createPopup() теперь можно создать только одно окно на страницу.
Internet Explorer будет пытаться блокировать автоматически открывающиеся окна в следующих случаях:
- Окно открывается скриптом, за исключением метода createPopup().
- Окно является "modal" и "modeless".
- Элементы DHTML закрывают собой основное содержимое страницы.
Если всплывающее окно открывается после каких-либо действий пользователя, блокироваться оно не будет.
Все блокированные вызовы функций, открывающих новое окно, будут возвращать объект null. Поэтому всегда проверяйте результат функции window.open во избежание последующих ошибок.
Pop-up окна, создаваемые другими объектами (например Macromedia Flash), также будут блокироваться безо всяких условий.
Рекомендации по созданию pop-up
- Не делайте редиректов после блокирования pop-up окна.
- Не используйте метод setTimeOut() на ссылках для создания pop-up, так как они будут блокироваться.
- Не пытайтесь автоматически закрыть блокированные pop-up окна. В этом случае пользователь не сможет их открыть при помощи Information Bar.
Ограничения на окна браузера
Если ваш сайт создаёт окна, заголовки, адресная строка и статусная область которых выходят за границы дисплея
Окна, создваемые автоматически функциями window.open() или window.createPopup(), должны придерживаться границ экрана. Все такие окна должны быть полнотью видимыми.
Необходимо придерживаться следующих правил при автоматическом создании окон:
Для окон, открываемых при помощи window.open:
- Статусная строка должна быть видимой. Она будет включена по умолчанию. Её высота равна примерно 20-25 точек.
- Настройте ваше окно так, чтобы оно не закрывало собой область задач (taskbar).
- Не открывайте окон за пределами экрана — иначе они будут перемещены в видимую область.
- Как и раньше, на открытые окна будут влиять текущая визуальная тема (skin), размер шрифта и разрешение дисплея. Это также необходимо учитывать.
Для окон, открываемых при помощи window.createPopup:
- Определите размер окна так, чтобы оно входило в родительское окно. Оно не должно закрывать собой заголовок и статусную строку окна-родителя.
- Не открывайте окон за пределами экрана — иначе они будут перемещены в видимую область.
- Как и раньше, на открытые окна будут влиять текущая визуальная тема (skin), размер шрифта и разрешение дисплея. Это также необходимо учитывать.
Если окно открывается функцией window.open() в результате действий пользователя, оно может быть полноэкранным и без статусной строки.
Ваш сайт использует HTML-диалоги
Не рекомендуется создавать HTML-диалоги, которые запускают элементы ActiveX, пытаются загрузить файлы или создать pop-up окна. Эти действия будут блокироваться, а Information Bar отображена не будет. Таким образом у пользователя не будет возможности произвести такие действия. Рекомендуется вынести их в обычное окно браузера.
Общие советы
Убедитесь, что Content-Type вашего сайта настроен правильно и соответствует расширениям файлов. Исключения составляет только случай с заголовком "content-disposition=attachment", когда расширение файла будет считаться правильным и не будет изменено в соответствии с Multipurpose Internet Mail Extensions (MIME).
Автор: Microsoft Corporation
Перевод: Сергей Яценко