Как я могу вызвать exe со страницы HTML? - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть веб-приложение, которое должно быть запущено с компакт-диска.

Мне нужно выполнить исполняемый файл, и у меня возникли проблемы с этим.В IE, если я вызываю href = "file: // path / exefile" с привязки, я могу выполнить его (после пары запросов безопасности), в то время как в Firefox пользователь должен сохранить exe-файл, затем запустить его, и появляется ошибка.

Есть ли способ запустить exe из браузера (я не знаю, скажем, с помощью Flash или других вещей)?

Я не использую протокол http: //, а протокол file: //, потому что он запускается с CDROM.

Ответы [ 2 ]

3 голосов
/ 18 декабря 2011

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

Это невозможно из-за серьезных последствий для безопасности, позволяющих веб-странице запускать любой исполняемый файл.

1 голос
/ 18 декабря 2011

Ссылка для загрузки Интернет-кода (КАК НА MSDN)

В этой сложной альтернативе веб-страница обходит обычный процесс загрузки файлов, используя загрузку Интернет-кода.Internet Code Download - это функция Internet Explorer, которая позволяет веб-страницам автоматически загружать элементы управления ActiveX и другие объекты собственного кода.Файлы, полученные через Internet Code Download, проходят через среду безопасности ActiveX, которая управляется параметрами безопасности.1.Если «исполняемый файл» не является подписываемым PE (.exe), таким как .bat-файл, то этот файл должен быть упакован в CAB-файл с INF в следующей форме.**

[version]
   signature="$CHICAGO$"
   AdvancedINF=2.0
[Add.Code]
   file.zzz=file.zzz
[file.zzz]
   clsid={15589FA1-C456-11CE-BF01-00AA0055595A}
   FileVersion=1,0,0,0
   hook=zzzinstaller
[zzzinstaller]
   run=%EXTRACT_DIR%\file.zzz

** Замените приведенный выше экземпляр File.zzz исполняемым файлом, который нужно запустить.

Для получения дополнительной информации о том, как упаковать CAB-файл, посетите следующую страницу.Веб-сайт Microsoft Developer Network (MSDN): http://msdn.microsoft.com/en-us/library/aa741200(VS.85).aspx (http://msdn.microsoft.com/en-us/library/aa741200(VS.85).aspx) 2. Убедитесь, что для EXE-файла (или CAB-файла) установлена ​​кодовая подпись. Если EXE-файл не подписан, это можно сделать с помощьюинструменты подписи кода CryptoAPI Authenticode. Дополнительную информацию см. в документации CryptoAPI в пакете MSDN Platform под заголовком «Безопасность».

По соображениям безопасности лучше всего обрабатывать процесс подписания кода для организациицентральный орган, которому доверяет вся организация. Подписывание кода требует либо приобретения дорогостоящих сертификатов у внешних поставщиков, таких как VeriSign, либо обслуживания сервера сертификатов, такого как Microsoft Certificate Server, в интрасети. 3. Используйте эту страницу примера в качестве руководствадля ссылки и скрипта необходимо запустить подписанный код без запроса:

<HTML><HEAD><TITLE>Page of executable links</TITLE></HEAD>
<BODY>
<BR/>

<!-- hyperlink uses central script function called linkit() -->
<A HREF="" onclick="return linkit('signed-testfile.exe');">
SIGNED-CLOCK.EXE</A>

<SCRIPT>
// linkit puts filename into HTML content and spews it into iframe
function linkit(filename)
{
   strpagestart = "<HTML><HEAD></HEAD><BODY><OBJECT CLASSID=" +
      "'CLSID:15589FA1-C456-11CE-BF01-00AA0055595A' CODEBASE='";
   strpageend = "'></OBJECT></BODY></HTML>";
   runnerwin.document.open();
   runnerwin.document.write(strpagestart + filename + strpageend);
   window.status = "Done.";
   return false;  // stop hyperlink and stay on this page
}
</SCRIPT>

<!-- hidden iframe used for inserting html content -->
<IFRAME ID=runnerwin WIDTH=0 HEIGHT=0 SRC="about:blank"></IFRAME><BR/>

</BODY></HTML>

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

...