Uruchomienie pliku exe po stronie klienta

0

Witam.

Próbuję uruchomić program na komputerze klienta poprzez stronę internetową. Założenie ma być proste. Klient klika w link i uruchamia dany program (putty). Niestety rozwiązanie jakie chciałem zastosować nie działa.

<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 
	    APPLICATIONNAME="Application Executer" 
	    BORDER="yes"
	    CAPTION="yes"
	    SHOWINTASKBAR="yes"
	    SINGLEINSTANCE="yes"
	    SYSMENU="yes"
	    SCROLL="yes"
	    WINDOWSTATE="normal">
    <script type="text/javascript" language="javascript">
        function RunFile() {
		WshShell = new ActiveXObject("WScript.Shell");
		WshShell.Exec("c:/windows/system32/calc.exe", 1, false);
        }
    </script>
</head>
<body>
	<input type="button" value="Run Calc" onclick="RunFile();"/>
</body>
</html>

Powyższa wersja niestety nie działa ale może ktoś z was wie jak to zrobić aby uruchomić program z parametrami?

0

Jeśli klient ma uruchomić putty link powinien wystarczyć ("ssh://[email protected]") (system sam się domyśla co ma być uruchomione, tak u mnie działają linki do gaduGadu: "<a href="gg:2481235">").
Możliwość uruchamiania bezpośrednio programów takich jak kalkulator, to była by po prostu wielka dziurą bezpieczeństwa.
Jeśli się da, to by zadziałało, twoja strona musi mieć specjalne uprawnienia (np być na liście zaufanych witryn).

W sumie to nie napisałeś czy shell ci działa.

Na dodatek powinieneś najpierw sprawdzić jak ci działają takie przykłady.

0

no właśnie odwołanie do protokołu ssh mi nie działa a nie mogę na każdym komputerze informować aby użytkownik dodał wpis do rejestru bo przy kilkuset osobach i przyszłych nowych będzie to problemem. dlatego szukam jakiegoś sposobu typu javascript aby uruchomić program będący w stałej ścieżce. Wiem że w php można uruchamiać aplikacje exe na komputerze ale na serwerze nic mi to nie daje. Liczyłem na to że po stronie klienta da się jakoś.

Nadal szukam sposobu :(

0

To działa mi lokalnie:

<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 
            APPLICATIONNAME="Application Executer" 
            BORDER="yes"
            CAPTION="yes"
            SHOWINTASKBAR="yes"
            SINGLEINSTANCE="yes"
            SYSMENU="yes"
            SCROLL="yes"
            WINDOWSTATE="normal">
    <script type="text/javascript" language="javascript">
        function RunFile() {
            if (window.ActiveXObject) {
                try {
                    var excelApp = new ActiveXObject("WScript.Shell");
                    excelApp.Run("calc");
                }
                catch (e) {
                    alert (e.message);
                }
            }
            else {
                alert ("Your browser does not support this example.");
            }
        }
    </script>
</head>
<body>
        <input type="button" value="Run Calc" onclick="RunFile();"/>
</body>
</html>
0

Podaj jakiś szerszy kontekst. Do czego ci to ma służyć, po co chcesz to putty uruchamiać? Prowadzisz firmę hostingową czy co? Skoro klient ma mieć zainstalowany konkretny program w konkretnej lokalizacji to dlaczego nie możesz wymusić dodania odpowiedniej ścieżki do rejestru czy zainstalowania innej aplikacji klienckiej, która ci w tym pomoże?

0

Służyć ma do uruchomienia terminala ssh z ip i portem podanym już do programu dzięki czemu użytkownik klikając w jeden link uruchomi program putty bez konieczności ręcznego dodawania ip i portu komputera na jaki chce się zalogować.

0

Możesz skonfigurować komputer po stronie klienta, by uri ssh odpalał przez putty albo użyć np. podpisany applet javy, który po akceptacji użytkownika będzie w stanie uruchomić aplikację na jego komputerze.

0

IMO najrozsądniej jest dać linka userowi do oprogramowania, które skonfiguruję obsługę SSH (najlepiej spróbować to wykryć czy jest to konieczne), niż kombinować z ActiveX (gdzie user musi dodać stronę do białej listy i zmienić poziom zabezpieczeń), szczególnie, że takie rozwiązania prowadzą do stron "IE Only".

0

Poziom zabezpieczeń to nie problem - najważniejsze aby link uruchamiał putty tak na windowsie jak i na linuksie i najlepiej w każdej przeglądarce. Jeżeli nie uda mi się tego dokonać to niestety będę musiał użyć terminali ssh napisanych w html5 lub ajaxie i wpleść je w serwis a tego chciałbym uniknąć. Dlatego właśnie szukam rozwiązania aby zrobić tylko wywołanie pliku exe lub polecenia w linuksie do putty.

Niestety jeszcze nic takiego nie udało mi się znaleźć co by zadziałało. Mogło by być oparte nawet o certyfikaty bezpieczeństwa czy inne pierdoły byle by działało jak trzeba.

0

Ale skoro zakładasz że putty zawsze jest w określonej ścieżce (taa, takiej samej na linuksie i windowsie :P) - to chyba konfigurujesz każdy kliencki komputer sam?
Jeżeli tak - parę linijek w node.js i postawisz mały serwerek http, który po określonym żądaniu (np. pobranie "obrazka" z 127.0.0.1) uruchomi jakiś proces.

edit: generalnie nie ma opcji żebyś bez specjalnego przygotowania komputerów klienckich coś sobie uruchamiał wg uznania, bo tak to co druga strona odpalałaby "format C:"..

0

właśnie to nie problem bo wystarczy sprawdzić jakiego systemu używa użytkownik i zastosować odpowiedni parametr w funkcji. niestety masz rację że z uwagi na bezpieczeństwo jest to mało prawdopodobne i niestety coraz bardziej dąży do tego że będę musiał użyć terminala ssh wbudowanego w serwis :(

0

właśnie to nie problem bo wystarczy sprawdzić jakiego systemu używa użytkownik i zastosować odpowiedni parametr w funkcji.

No oczywiście, bo KAŻDY ZAWSZE instaluje WSZYSTKO do C:\Program Files.

0

z uwagi na bezpieczeństwo jest to mało prawdopodobne

To jest wcale prawdopodobne. Takie rzeczy exploitami robiło się w IE6 bez poprawek, a nie teraz..

0

Rev akurat w tym przypadku jeżeli się uda to będzie to wymóg i będzie spełniany przez osoby używające serwisu więc swój sarkazm możesz sobie w buty wsadzić :)

1

No tak, bo user któremu każesz zalogować się na shella i miotać komendami nie będzie potrafił wpisać hosta do ustawień PuTTY zgodnie z instrukcją.
Tworzenie problemów tam gdzie ich nie ma.

0
Setesh napisał(a):

Rev akurat w tym przypadku jeżeli się uda to będzie to wymóg i będzie spełniany przez osoby używające serwisu więc swój sarkazm możesz sobie w buty wsadzić :)

No to wymuś uruchomienie małego serwerka w node.js i dobranoc, pomijając to, o czym mówi Demonical.

1 użytkowników online, w tym zalogowanych: 0, gości: 1