Опыт борьбы со SmartScreen Filter в IE9

Для многих независимых разработчиков программного обеспечения распространяющих свое ПО через Интернет, одним из весьма неприятных сюрпризов преподнесенных корпорацией Microsoft оказалось появления предупреждений антифишингового репутационного фильтра Smart Screen Filter в браузере Internet Explorer 9.

Так при попытке скачать новый файл дистрибутива Setup.exe с сайта разработчика Internet Explorer 9 показывает сообщение:

«File Setup.exe  is not commonly downloaded and may harm your computer»

В переводе на русский это означает:

Файл «Setup.exe» загружается необычным образом  и может причинить вред Вашему компьютеру.

Кнопки «Run» или «Save» при этом не отображалась, а единственной возможностью для пользователя установить программу оставался вариант нажать кнопку «Options», ознакомиться с еще одним строгим предупреждением «» и выбрать в нижеприведенном списке опций вариант «Run Anyway».

— Don’t run this program

— Delete program

— Run anyway

Что обидно, мне нисколько не помогла процедура подписывания исполняемых файлов, свежеполученным цифровым сертификатом для подписи программ от Verisign.

Internet Explorer 9 по прежнему выдавал своё отпугивающие для всех моих подписанных EXE файлов.

Для меня лишнее отпугивающее сообщение выдаваемое одним их самых популярных браузеров при загрузке дистрибутива, означало однозначную потерю денег от продажи моей программы.

Для того, чтобы избежать неминуемых потерь, мне сразу пришлось перейти от распространения дистрибутива в виде  EXE файла,  к распространению дистрибутива в виде ZIP архива.

(Примечание: Через некоторое время после публикации данного поста данный способ перестал  помогать, так как  теперь SmartScreen Filter начал ругаться  и на ZIP архивы)

Безусловно, столкнувшись с проблемой, я начал рыть Интернет. Алгоритм фильтра Smart Screen основывается на анализе репутации конкретного файла или цифровой подписи разработчика.  В качестве совета разработчикам представители Microsoft в блоге разработчиков Internet Explorer предложили авторам программ «набирать репутацию» для своих дистрибутивов, а для ускорения предложили поучаствовать в Windows 7 Logo Program.

Участие в программе  Windows 7 Logo Program, в мои планы не входило.  А вот идея набрать репутацию для своего сертификата мне понравилась.

Но как можно сделать так, чтобы сотни пользователей скачивали дистрибутив в виде подписанного EXE файла, но при этом не потерять деньги из-за отпугивающего сообщения?

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

В итоге, на главной странице пользователям предлагалось скачать ZIP архив, а на второстепенных локализованных страницах с описанием программы посетителям предлагалось скачать тот же дистрибутив в виде EXE файла.

Так прошло несколько месяцев в ожидании набора репутации.

В итоге,  Internet Explorer 9 перестал не только ругаться на мой дистрибутив в виде EXE файла, но и вообще без проблем дает загрузить и запустить все исполняемые файлы, которые я подписал своим цифровым сертификатом.

Реклама

Перевод и локализация программы силами пользователей

Как правило, большинство отечественных разработчиков своего собственного ПО  делают перевод на два языка: на английский, потому что он самый распространенный, и на свой родной.

Всякий кто пробовал обращаться в агентства по переводам, рискует столкнуться  со следующими трудностями:

1. Незнание переводчиком профессиональной терминологии из вашей области. Причем понять, что переводчиком выбраны не совсем верные термины довольно сложно, а на привлекательности вашего предложения плохой перевод может сказаться очень существенно.

2. Высокая цена перевода. Например, если говорить про необходимость перевода страниц объемом 10 килобайт на 10 яызков, то оценочная цена превысит 1500 долларов.

3. Необходимость повторного перевода при выпуске новых версий.

 

Поэтому для обеспечения локализации я решил пойти другим путём.

Предварительно, я реализовал в программе две функции: одна извлекала текстовые строки из размещенных в программе контролов в файл формата ini, а другая наоборот загружала строки из ini файла во все контролы приложения. Дополнительно в этом же файл первая функция экспортировала текстовые константы используемые для вывода сообщений на экран.

На своем сайте я предложил бесплатную лицензию всем кто согласится перевести либо указанные мной страницы сайта, либо переведет текстовые строки для самой программы.

При цене программы от 100 долларов, желающие нашлись. И у меня за несколько месяцев появились переводы сайта на 10 языков, и более 15 локализаций. Причем перевод сделали активные пользователи программы, кто совершенно точно владеет терминологией предметной области.

Единственно долго ждать пришлось перевода на немецкий. В итоге именно по немецкому языку, пришлось обращаться к сервисам по переводам для перевода сайта. И потом мучительно корректировать профессиональную терминологию.

Указанный выше способ локализации программы с языковым файлом формата INI позволил по мере выпуска новых версий, сохранять уже переведенные строки.  Таким образом, пользователю вызвавшемуся локализовывать новую версию достаточно перевести только новые текстовые строки. И, как правило, большинство из тех, кто делал вам переводы, соглашаются обновить перевод для новых версий.