-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-Key: 127203

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

Printed on: April 19, 2024 at 14:04 o'clock

Member: Iwan
Iwan Oct 15, 2009 at 13:20:20 (UTC)
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
Member: -ricardo-
-ricardo- Oct 15, 2009 at 13:21:30 (UTC)
Goto Top
Kann man das denn irgendwie anders realisieren????
Member: jhinrichs
jhinrichs Oct 15, 2009 at 13:28:48 (UTC)
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).
Member: dog
dog Oct 15, 2009 at 16:08:30 (UTC)
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...
Member: -ricardo-
-ricardo- Oct 15, 2009 at 16:33:31 (UTC)
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
Member: Supermax
Supermax Oct 15, 2009 at 19:39:28 (UTC)
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.
Member: -ricardo-
-ricardo- Oct 16, 2009 at 10:37:23 (UTC)
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-