-ricardo-
Goto Top

shell exec() Funktioniert nicht wenn ich es von einer Webseite starte

Ich hoffe irgend einer kann mir schnell herlfen face-smile

Ich habe mir eine Seiter Programmiert, die IP-Adressen meiner Server beinhaltet...
Soweit klappt auch alles...
Jetzt wollte ich aber, dass beim Klick auf einen Link über die Shell_exec() automatisch eine vpn verbindung hergestellt wird...

$output = shell_exec('C:\Windows\system32\rasdial.exe VPN user password /PHONE:124.123.123.123');
echo "<pre>$output</pre>";

Wenn ich das auf meinem Rechner in der Testumgebung laufen lasse, klappt es auch ...
Sobald ich die Seite aber hochgeladen passiert nichts...

Wieso???????
Unterbindet der Firefox und der IE das Shell_exec()?

Content-ID: 127203

Url: https://administrator.de/contentid/127203

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Iwan
Iwan 15.10.2009 um 15:20:20 Uhr
Goto Top
hallo,

weil es wohl unverschämt wäre, wenn eine Webseite einfach so lokal Dateien ausführen könnte?
trag die Webseite im IE mal unter "Vertrauenswürdige Sites" ein
-ricardo-
-ricardo- 15.10.2009 um 15:21:30 Uhr
Goto Top
Kann man das denn irgendwie anders realisieren????
jhinrichs
jhinrichs 15.10.2009 um 15:28:48 Uhr
Goto Top
Hallo,
wir reden über die php-Funktion "shell_exec()", richtig?
Die startet doch das Kommando auf dem Webserver, auf dem das Script läuft, und nicht auf dem Client. (PHP ist eine serverseitige Skriptsprache!), und auch da nur, wenn php nicht im safe-mode läuft.
Ich denke, was Du möchtest, ließe sich über eine clientseitige Scriptsprache (JavaScript, ggf. beim IE ein ActiveX-Element) erreichen, aber auch da wirst Du, wenn Du vernünftige Sicherheitseinstellungen hast, um "Vertrauenswürdige Sites" o. ä. nicht herumkommen).
dog
dog 15.10.2009 um 18:08:30 Uhr
Goto Top
LOL ............. whahaha, ich kann nicht mehr face-big-smile

Aber um dir ein bisschen zu Helfen:
Wenn du den IE als Browser benutzt und die Seite als vertrauenswürdig markierst kannst du mit Hilfe von VBScript und dem WScript-Objekt lokale Befehle ausführen...
-ricardo-
-ricardo- 15.10.2009 um 18:33:31 Uhr
Goto Top
Danke für die Antworten...

Habe das jetzt mittels JavaScript gemacht... mit den entsprechenden Sicherheitseinstellungen klappt es unterm IE auch...
Nur dadurch entstehet dann ja auch ein Sicherheitsloch face-confused
Supermax
Supermax 15.10.2009 um 21:39:28 Uhr
Goto Top
Ein auf diese Weise gestartetes serverseitiges Programm läuft mit den Benutzerrechten des Webservers (Apache oder IIS); dieser hat in der Regel keine Berechtigungen, das Programm "RASDIAL.EXE" auszuführen.

Wenn du das Script/Programm von der Kommandozeile aus startest, läuft es mit den Rechten deines eigenen Useraccounts.

Sollte dein Webserver aber nicht dein eigener Rechner sein, dann funktioniert das so ohnehin nicht, selbst wenn der Webserver ein Windows-Server ist. Meistens laufen Webserver aber unter einem unix-artigen OS, Windows-Programme wie RASDIAL stehen dort nicht zur Verfügung.
-ricardo-
-ricardo- 16.10.2009 um 12:37:23 Uhr
Goto Top
<SCRIPT type="text/javascript" LANGUAGE="JavaScript">  
  function executeCommands()
    {
  		 var oShell = new ActiveXObject("Shell.Application");  
   		 oShell.ShellExecute("C:\\Windows\\system32\\rasdial.exe","VPN [username] [password] /PHONE:[IP-Address]","","open","1");  
   		 oShell.ShellExecute("C:\\Windows\\system32\\mstsc.exe","/v [Remoteserver]","","open","1");  
  	}
</SCRIPT>

Also mit einem ActiveXObject geht es, wenn man die Sicherheitseinstellungen im IE anpasst...

Dennoch danke für die Hilfe!

Gruss
-ricardo-