Discussion:
Taint
(for gammel til at besvare)
Henrik Hald Nørgaard
2011-05-12 06:44:59 UTC
Permalink
Hej Perl Mongers.



Jeg vil gerne høre om jeres erfaringer med at bruge Perls taint check i
webapplikationer.



Vores CGI-scripts hos Jobindex kører ikke med taint check slået til. Jeg har
forsøgt at slå det til i vores udviklingsmiljø og fandt hurtigt følgende
problemer:



* Vi bruger Class::Autouse. Metoden load_recursive fejler med taint check
slået til

* Vores templatesystem opbygger og evaluerer kode, der afhænger af ENV. Det
duer heller ikke med taint check

* Det modul vi bruger til at checke brugernes loginoplysninger giver
forskellige svar afhængig af, om passwordet er tainted eller ej(!), så jeg
kunne ikke logge ind



- og der er sikkert flere…



Nu vil jeg gerne høre fra jer:



- Bruger I Perls taint check? Hvofor/hvorfor ikke? Hvilke problemer har det
givet at bruge taint check?

- Har I erfaringer med at få en eksisterende applikation til at køre under
taint check?

- Er det umagen værd at bruge taint check? Det giver vel ikke større
sikkerhed, men til gengæld en masse støj i koden, bare at untainte en masse
variable?

- Hvis I untainter variable: Hvordan gør I? Bruger I et modul (f.eks.
Taint::Util) eller et skræddersyet regexp for hver variabel?



Jeg kender teorien og efterlyser håndfaste, konkrete erfaringer med taint.



Med venlig hilsen
Henrik Hald Nørgaard, Programmør
Jobindex A/S, Holger Danskes Vej 91, 2000 Frederiksberg
Tlf.: +45 38 32 33 55, dir.: +45 38 32 33 81
<http://www.jobindex.dk/> www.jobindex.dk
Jørgen Elgaard Larsen
2011-05-12 09:09:16 UTC
Permalink
Post by Henrik Hald Nørgaard
- Bruger I Perls taint check? Hvofor/hvorfor ikke? Hvilke problemer har det
givet at bruge taint check?
Jeg plejer at bruge taint check, når jeg laver nye ting, der skal køre i
et åbent miljø - f.x. webapplikationer.
Post by Henrik Hald Nørgaard
- Har I erfaringer med at få en eksisterende applikation til at køre under
taint check?
Det kan være et hyr, hvis man har meget inddata. Men i mange tilfælde er
det nok at untainte $ENV{PATH}.
Post by Henrik Hald Nørgaard
- Er det umagen værd at bruge taint check? Det giver vel ikke større
sikkerhed, men til gengæld en masse støj i koden, bare at untainte en masse
variable?
- Hvis I untainter variable: Hvordan gør I? Bruger I et modul (f.eks.
Taint::Util) eller et skræddersyet regexp for hver variabel?
Det giver efter min mening kun mening at bruge taint check, hvis man for
hver enkelt variabel sætter sig ned og overvejer, hvad den må indeholde
- og så untainter den med et regex ud fra det.

Taint check er et værktøj til at skrive bedre kode. Lige som use
warnings|strict er det ikke nødvendigt, men kan fange nogle ting, man
ikke lige havde overvejet.

Med taint check tvinges du til at validere inddata. Men hvis du bare
omgår det ved bevidstløst at hive ting gennem Taint::Util::untaint, er
det lidt ligemeget.

- Jørgen

Loading...