Porgramm mit CGi Starten
Apollo
- cgi
Ich lasse auf meinem Server ein CGI/Perl Skript laufen und will damit auf dem server ein programm starten(eine exe datei), zum Bsp. Notepad.exe oder sowas.
wie kann ich das mit einem perl skript machen?
Ich lasse auf meinem Server ein CGI/Perl Skript laufen und will damit auf dem server ein programm starten(eine exe datei), zum Bsp. Notepad.exe oder sowas.
wie kann ich das mit einem perl skript machen?
Dazu brauchst du kein Perl skript:
http://localhost/notepad.exe startet notepad auf dem Server, falls es im Stammverzeichnis liegt. Warum du das aber willst ist mir schleierhaft.
Struppi.
will ein webinterface machen mit dem man den server resetten kann. das wird ne normale internetseite, wo dann die reset.exe datei über ein cgi script gestartet werden soll.
so kann ich net machen,weil dann quasi jeder die datei starten könnte
http://localhost/notepad.exe
das script soll dann noch username und opasswort abfragen, das aber kein problem.
Weis nur nciht wie man dann auf dem server die exe-datei startet,vom cgi script aus
Moin!
Weis nur nciht wie man dann auf dem server die exe-datei startet,vom cgi script aus
Sicher hat Perl sowas wie einen system() Befehl. PHP hat ihn ja auch...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi Apollo,
so kann ich net machen,weil dann quasi jeder die datei starten könnte
das Ausführen eines Programms auf dem Server und der Zugriff auf einen URL sind zwei völlig getrennte Mechanismen.
das script soll dann noch username und opasswort abfragen, das aber kein problem.
Weis nur nciht wie man dann auf dem server die exe-datei startet,vom cgi script aus
Du brauchst kein CGI-Skript. Du kannst direkt Dein reset.exe-Programm starten - und in Deiner Webserver-Konfiguration regeln, unter welchen Voraussetzungen dies erlaubt ist.
Der Webserver kann viel mehr, als Du denkst - Du mußt nicht alles selbst programmieren. Insbesondere Zugriffskontrolle ist ein Thema, wo Du so viel verkehrt machen kannst, daß es besser ist, auf etablierte Lösungen zurück zu greifen.
Viele Grüße
Michael
Moin!
http://localhost/notepad.exe startet notepad auf dem Server, falls es im Stammverzeichnis liegt.
Oh..Oh. Da ist aber einiges gefährlich konfiguriert.... Insbesondere sollte man dem Dienst Apache die Kommunikation mit dem Desktop verbieten.
Ferner wird der Notepad in der Standardkonfiguration zum Download angeboten statt gestartet.
Es sei denn: man hat folgendes in der httpd.conf sttehen:
AddHandler cgi-script .exe
Wie gesagt: Achtung! Das ist gefährlich! Das sollte man nur machen, wenn man dem Apache ein stark eingeschränktes Nutzerkonto zugewiesen hat (Verwaltung -> Dienste) und den bösen Benutzer "jeder" als Rechteinhaber aus allen Ordnern des Systems verbannt hat.
Natürlich bracht der Apache dann die notwendigen Zugriffsrechte für Serverrroot (und darunter) und für das eigene Programmverzeichnis. In /logs/ zb. auch Schreibrechte.
Warum du das aber willst ist mir schleierhaft.
Notepad ist wirlich ein schlecht gewähltes Beispiel. Vielleicht will er seinen Rechner ja klingeln lassen, wenn sich ein Besucher verirrt :)
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
und wie muss ich das dann in das CGI Skript schreiben, das ich das Programm starten kann ? ( ist ein Programm zum Resetten, notepad,war nur einbeispiel)
und wie muss ich das dann in das CGI Skript schreiben, das ich das Programm starten kann ? ( ist ein Programm zum Resetten, notepad,war nur einbeispiel)
Wenn Du es wirklich auf diese gefährliche Tour machen willst reicht ein Link auf reset.exe. Diese wird dann genau so ausgeführt wie ein Perl- Script. Da der Server ohnehin beendet wird brauchts Du keine Rückgabe...
Besser:
http://www.perldoc.com/perl5.8.0/pod/func/exec.html
fastix®
Moin!
http://localhost/notepad.exe startet notepad auf dem Server, falls es im Stammverzeichnis liegt.
Oh..Oh. Da ist aber einiges gefährlich konfiguriert.... Insbesondere sollte man dem Dienst Apache die Kommunikation mit dem Desktop verbieten.
Ferner wird der Notepad in der Standardkonfiguration zum Download angeboten statt gestartet.
Ah, ich hatte ganz das cgi-bin vergessen
http://localhost/cgi-bin/notepad.exe
allerdings erschient in deinem Browser dann ein Fehler, weil notepad kein gültigen HTML header zurückgibt. Mit Perl gäbe es mehrere Möglichkeiten, system und backticks zum beispiel.
Struppi.
hi Apollo,
wie kann ich das mit einem perl skript machen?
$result =c:/system32/notepad.exe
;
(ja das sind slashes)
Grüße Oesi
wie kann ich das mit einem perl skript machen?
$result =
c:/system32/notepad.exe
;(ja das sind slashes)
nö, backticks.
Struppi.
nö, backticks.
das '/' ist ein slash und kein '/' backslash
Grüße Oesi
das '/' ist ein slash und kein '/' backslash
natürlich falsch: so '' sieht ein backslash aus.
Grüße Oesi
Moin!
das '/' ist ein slash und kein '/' backslash
Struppi schrieb aber:
nö, backticks.
back('`'), weil ticks vermutlich so aussehen: '´'.
Die Franzosen nennen das accsant de gu bzw. accsant de graf (Schreibwiese oder so ähnlich...)
Merke: (back)slash != (back)ticks. Auch wenn die ticks sehr klein sind.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®