xwolf: Sicherheit eines cgi-skripts

Beitrag lesen

Tach!

tststs..du wirst meinen Forum untreu :)

als Anfänger in puncto cgi-Programmierung (perl) habe ich nun eine Frage an das Forum. Leider habe ich im Archiv noch nicht so das passende für mich gefunden.

Nachdem ich mittlerweile ein paar cgi-Programme geschrieben habe (Formularmailer, counter, Suchmaschine), sollten diese nun bevor sie ins WEB gestellt werden auf ihre Sicherheit überprüft werden. Gibt es da irgendwelche Tipps + Tricks?

In meinen Tutor findest du auf der vorletzten Seite etwas drueber.
Ansonsten: Alle Benutzereingabe sind zu behandeln wie rohe Eier!
Erst recht, wenn du diese nutzen willst, um damit Dateien anzusprechen, Mails
zusenden oder allgemein Systemaufrufe ausfuehren willst.

Wenn du mein web-Modul hast, schau dir mal die Routine Check_Name an.
Dort sind die Empfehlungen des CERTs eingearbeitet, was man erlauben sollte bei Sonderzeichen..

Der Antwort von Andreas Bierhals stimme ich ansonsten fast ueberall zu.
Nur bei einem waere ich sehr vorsicht: Wenn du dir CGI-Skripts aus Archiven holst, dann musst du es dir vorher anschqauen.
Insbesonders, und gerade auch das Standardarchiv cgi-resources.com enthaelt einige Skripts die unsicher sind. So z.B. das bekannte survey.cgi von BigNoseBird, welches dort ueber 1,5 Jahre war, von ueber 750 Leuten als eines der besten Skripten seiner Kategorie galt, aber trotzdem ein Sicherheitsloch hatte - was bis Anfang dieses Monats keiner der 750 fuer das Ding stimmten, bemerkt hatten...

Ein Standard-Weg um Unsicherheiten festzustellen gibt es nicht, wohl aber Hinweise.

ich fang meistens so an zu testen:
1. grep "open" (cgi-skript)
2. grep auf alle Variablen innerhalb der opens
3. grep auf die Herkunft der Variablen
4. Anschauen, wie das Parsing der Netzdaten gemacht wird.
...
dito fuer system, touch, usw...

Warauf man ueberhaupt nicht achten sollte ist:

  • Authorinfo; Wer das Skript geschrieben hat. Nur weil es von Matt Wright oder Lincoln Stein  ist, muss es nicht sicher sein. (Gerade bei erstem nicht). Jeder hat mal angefangen und  niemand weiss, welche Archive noch uralt-Versionen haben.
  • Urlange Kommentare...Um so mehr Erklaerungsbedarf um so argwoenischer werd ich.
    Jemand der taeglich Perl codet, macht Kommentare eigentlich nur fuer seine Kunden - fuer ihn/sie selbst ist perl und Kommentar daselbe :)
    Gemaessigte Kommentare sind ja gut...aber wenn jemand auf 80 Zeilen mehr als 60 Zeilen Kommentare hat....

Ansonsten gibt es noch viel zu sagen. Aber eigentlich laeuft es auf eines heraus: Du kriegst frueher oder spaeter ein Gefuehl dafuer, was gut ist und was nicht...

Ciao,
Wolfgang