--- Curtis Poe <[EMAIL PROTECTED]> wrote:
>
> You supplied some great information, however, your
> example of plugging the security hole has a
> security hole itself. From the command line on any
> *nix system, enter the following (assuming you
> are not in root):
>
> cd \.\.
>
> You quickly discover that the shell allows those
> dots to be escaped. In a url, that translates to
> something like:
Yes, the shell, but the program I was commenting
didn't use the shell. And even if it used, it would
die if there was any '\' in the input anyway. Maybe I
don't get your point, but my code:
> > die 'INSECURE $file !!!' if $file =~ /\.\./;
> > if ($file =~ /^([-\w./]+)$/) { $file = $1 }
> > else { die 'INSECURE $file !!!' }
won't pass any '\' or '%' from your examples. If
anything, it's too paranoidal, it won't work with
files like "some..file..name", and maybe:
die 'INSECURE $file !!!' if $file =~ m{/\.\./|^\.\./};
would be better, but I still don't understand your
point, I'm sorry.
__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - Send FREE e-cards for every occasion!
http://greetings.yahoo.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]