sicheres cgi-script?
Christoph von Cube
nun da ich nach dem lesen von SELFHTML kleine cgi scripts geschrieben habe, frage ich mich ploetzlich sind die denn "sicher"??
ich habe einige FAQs gelesen aber ich kenne mich schlecht in unix aus und deshalb hier die fragen:
1. in meinem script kommt ein print "$variable"; vor
wenn nun ein user "; rm und so weiter eingibt wird dies auf der shell ausgefuehrt und ich verlier meine dateien?
2. ich habe ein script das nur eine datei ausliest und eine html ausgabe erzeugt, ist dies "sicher"?
3. ein script welches zur passwort abfrage nur eine eingabe mit dem passwort vergleicht gibts hier auch probleme?
vielen dank fuer eure muehe
- in meinem script kommt ein print "$variable"; vor
wenn nun ein user "; rm und so weiter eingibt wird dies auf der shell ausgefuehrt und ich verlier meine dateien?
Ausgeführt kann es IMHO nur werden, wenn der eingegebene Text als HTML ausgegeben wird. Dann kann der Benutzer soweit ich weiß Programme oder Skripts ausführen, so in der Art wie SSI... Wenn der Server das nicht unterstützt, sollte das kein Problem sein. Zur Not kannst du ja aus Eingaben etwaige HTML-Codes herausfiltern.
- ich habe ein script das nur eine datei ausliest und eine html ausgabe erzeugt, ist dies "sicher"?
Ja, wenn die Datei von außen nicht verändert werden kann.
- ein script welches zur passwort abfrage nur eine eingabe mit dem passwort vergleicht gibts hier auch probleme?
Nein, der eingegebene String wird ja nur Perl-interent verwendet.
bye, Frank!
Zur urspruenglichen Frage, ob CGI-Scripte oder -Programme
sicher sind, sollte man nicht zu vorschnell einfach mit "ja"
antworten. Ich moechte aber auch hier nicht zuviel auflisten,
was dann ganz fixe Jungens ausprobieren koennen.
- ein script welches zur passwort abfrage nur eine eingabe mit dem passwort vergleicht gibts hier auch probleme?
Nein, der eingegebene String wird ja nur Perl-interent verwendet.
nicht ganz. Wenn Passworte, die einen Zugriff zum Server erlauben, mit
der Methode GET zum CGI geschickt werden, dann wirst Du das im
Quelltext in deiner LogFile wiederfinden, und eventuell nicht nur Du.
Um es kurz zu machen, nix mit CGI machen, was irgendwelche Daten,
wie Zugangspassworte (etwa fuer FTP, oder Telnet) ueber das HTTP
(also das Web) schickt. Auch keine Administartions-Teile ins Internet
stellen, die zb es erlauben einen Drucker bei der Arbeit von zu Haus
aus zu steuern, oder irgeneinen anderen Pipifax machen.
Solche Sachen immer mit jemanden abkakeln, der sich wirklich damit
auskennt.
Gruesse
Stefan Mueller