[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debian]:Re: Kommandos via CGI ???



On Mon, Dec 27, 1999 at 09:24:14AM +0100, Thomas Bader wrote:
> Ingolf Schuchardt schrieb am Montag, den 27. Dezember 1999:
> > > 
> > > Darüber habe ich in der Manpage (perlrun) gelesen. Allerdings kann ich
> > > mir nichts unter einem 'taint check' vorstellen. Kann mir das jemand
> > > kurz erklären?
> > 
> >    Ist Taint Checking eingeschaltet, sieht der Perl-Interpreter
> >    grundsätzlich alle Daten als verdorben an, die von außen in das Skript
> >    kommen. Jede Variable, die mit verdorbenen Daten in Berührung kommt,
> >    wird ebenfalls als verdorben gekennzeichnet. Wenn das Skript jetzt
> >    eine Funktion aufruft, die Dateien manipuliert oder Daten an die Shell
> >    weitergibt, so überprüft der Interpreter zunächst, ob ihre Argumente
> >    verdorbene Daten enthalten. Falls ja, beendet er das Skript mit einer
> >    Fehlermeldung. Taint Check verhindert also die meisten gefährlichen
> >    Anwendungen.
> 
> Eines begreife ich noch nicht: Anhand welchen Gesichtspunkten
> entscheidet der Interpreter, was verdorben ist und was nicht?

perlsec(1p) sagt:

       You may not use data derived from outside your program to
       affect something else outside your program--at least, not
       by accident.  All command line arguments, environment
       variables, locale information (see the perllocale
       manpage), results of certain system calls (readdir,
       readlink, the gecos field of getpw* calls), and all file
       input are marked as "tainted".  Tainted data may not be
       used directly or indirectly in any command that invokes a
       sub-shell, nor in any command that modifies files,
       directories, or processes.  Any variable set to a value
       derived from tainted data will itself be tainted, even if
       it is logically impossible for the tainted data to alter
       the variable.  Because taintedness is associated with each
       scalar value, some elements of an array can be tainted and
       others not.

Genaueres zu dem Thema 'taint checks' findest Du dort, da das ganze
schon ein sehr ausgeklügeltes Verfahren ist. Ich fand es in der Zeit
als ich CGI-Skript programmierte manchmal schon zu pingelig, wenn ich
mir eigentlich sicher war was ich mache. Andereseits denke ich heute
auch, daß ich damals einiges hätte besser machen sollen. :-)

-- 
marko schulz

            "HipHop braucht kein' Mensch, aber Mensch braucht HipHop"
                                                      Fünf Sterne Deluxe
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     754


Reply to: