Какой наиболее надежный метод для JS для выполнения локальных команд в веб-браузере (наиболее важном IE)? - PullRequest
0 голосов
/ 21 февраля 2012

Я не могу определить настройку безопасности в IE, которая позволяет для файлов: URI запускать исполняемые файлы (например, window.location.open ("file: /// C | / Program Files / foo / bar.exe") ).

Есть ли настройка, которая позволяла бы некоторым сайтам запускать подобные вещи, или есть какой-то тип Java-апплета или элемента управления ActiveX, который мог бы выполнить то же самое?

Спасибо за любые советы.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Вот простой пример использования WScript.Shell для только для IE : конечно, это вызовет предупреждение «Элемент управления ActiveX на этой странице ...».(Конечно, для запуска приложения не используется file:/// URI, но страница загружается через file:///.)

Протестировано в IE8:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            (function () {
                var wsh = null;
                if ( self.ActiveXObject ) {
                    try {
                        wsh = new ActiveXObject( "WScript.Shell" );
                    } catch ( e ) {}
                    // Check for permission
                    if ( !wsh ) {
                        alert("Sorry, could not get permission");
                        return;
                    }
                    wsh.run("notepad.exe");
                    alert("Notepad should now be open");
                } else {
                    alert("Sorry, this example is IE-only");
                }
            })();
        </script>
    </head>
    <body>

    </body>
</html>
0 голосов
/ 21 февраля 2012

К счастью, это невозможно ни при каких обстоятельствах без использования эксплойтов или подобных взломов.

Объекты ActiveX или Java-апплеты, которые обычно являются вредоносными программами или, по крайней мере, рассматриваются как вредоносные программы антивирусной эвристикой, поскольку они обычно являются именно такими.

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