in reply to Re^2: Using relative paths with taint mode
in thread Using relative paths with taint mode
So, I am thinking that untainting $Bin isn't much of a practical security risk in this instance.
Is that sensible or am I being overly optimistic?
Well, you could try it to see it. (DON'T!) Once your server has been taken over, you know you were too optimistic.
Unfortunately, this is a little bit similar to the halting problem. Until your server has been taken over, you can never be sure that it won't be taken over.
You could "blindly" untaint $FindBin::Bin, accepting any value and hoping for the best, without ever being sure. You could validate and thereby implicitly untaint $FindBin::Bin. Or you could use a hardcoded absolute path.
What is your intention? Are you writing for a limited set of machines, maybe a single machine, with a known configuration? Or do you want unlimited distribution to machines with unknown configurations?
In the first case, I would hardcode the absolute path. In the second case, I would distribute all modules found in the private lib directory via CPAN, or at least in form of a CPAN-compatible archive, and have them installed like any other modules in some of the regular directories listed in @INC, no use lib needed.
Alexander
|
|---|