Taint mode (cont) Use regexps to untaint data $text = param('email'); if ( $text = / ^ ( [^@]+ @ [-a-z0-9.]+ ) $ /ix ) { $email_addr = $1; } else { bail "Email address isn't in even vaguely valid format" } # $email_addr now untainted # $text still tainted open SENDMAIL, "|/usr/bin/sendmail -t" or bail "sendmail"; print SENDMAIL <<EOM; To: $email_addr Subject: whatever ...
Copyright 2003, Bri Hatch of Onsight, Inc.
Presented at SPUG, 2003.
Presentation created using vim and MagicPoint.