Gargi
02.08.2009, 16:17
Natürlich kann man über ein php Script ein Shellscript auf seinen Server ausführen. Wir machen das einfach einmal über zwei Dateien. Die erste Datei fragt einen Sicherheitscode ab. Sollte Dieser richtig eingegeben werden wird das Script ausgeführt, falls nicht kommt eine entsprechende Fehlermeldung.
Aus Sicherheitsgründen sollte das natürlich noch via einem .htaccess gesichert werden.
Das Eingabescript schaut dann ungefähr so aus:
<html>
<body>
Bitte geben Sie den Sicherheitscode ein:<p>
<form action = "ergebnis.php" method = "post">
<input type= "password" name = "code" maxlength="10" > Code<p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html>
(eingabe.html)
Das auszuführende Script schaut da so aus:
<html>
<body>
<?php
$passwort = DEINPASSWORT;
if($_POST["code"]==$passwort)
echo exec('/pfad/zum/script.sh')."Alles klar, Script ausgeführt.";
else
echo "Falsches Passwort, bitte noch einmal probieren!<br />
<form action = \"eingabe.html\">
<input type = \"submit\" value = \"Zurück zur Passworteingabe\">
</form>";
?>
</body>
</html>
(ergebnis.php)
Eingabefeld:
http://www.gargi.org/stuff/sonstiges/script_php1.png
Positiv:
http://www.gargi.org/stuff/sonstiges/script_php2.png
Falsches Passwort:
http://www.gargi.org/stuff/sonstiges/script_php3.png
Der Kernbefehl, der eben das Script ausführt ist
echo exec('/pfad/zum/script.sh');
Hier hinterlegt bitte das Script. Allerdings bedenkt, dass das Script nur mit den Rechten des Webservers/Webusers ausgeführt werden kann. Also entsprechende Befehle, die Rootrechte bedürfen gehen damit (zu Recht!!!) nicht.
cu
Gargi
Aus Sicherheitsgründen sollte das natürlich noch via einem .htaccess gesichert werden.
Das Eingabescript schaut dann ungefähr so aus:
<html>
<body>
Bitte geben Sie den Sicherheitscode ein:<p>
<form action = "ergebnis.php" method = "post">
<input type= "password" name = "code" maxlength="10" > Code<p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html>
(eingabe.html)
Das auszuführende Script schaut da so aus:
<html>
<body>
<?php
$passwort = DEINPASSWORT;
if($_POST["code"]==$passwort)
echo exec('/pfad/zum/script.sh')."Alles klar, Script ausgeführt.";
else
echo "Falsches Passwort, bitte noch einmal probieren!<br />
<form action = \"eingabe.html\">
<input type = \"submit\" value = \"Zurück zur Passworteingabe\">
</form>";
?>
</body>
</html>
(ergebnis.php)
Eingabefeld:
http://www.gargi.org/stuff/sonstiges/script_php1.png
Positiv:
http://www.gargi.org/stuff/sonstiges/script_php2.png
Falsches Passwort:
http://www.gargi.org/stuff/sonstiges/script_php3.png
Der Kernbefehl, der eben das Script ausführt ist
echo exec('/pfad/zum/script.sh');
Hier hinterlegt bitte das Script. Allerdings bedenkt, dass das Script nur mit den Rechten des Webservers/Webusers ausgeführt werden kann. Also entsprechende Befehle, die Rootrechte bedürfen gehen damit (zu Recht!!!) nicht.
cu
Gargi