![]() |
|
Your skill will accomplish what the force of many cannot |
|
PerlMonks |
Re: Re: Re^2: use Safe ; Any Thwarted Attacks?by scrottie (Scribe) |
on Nov 13, 2003 at 17:21 UTC ( [id://306861]=note: print w/replies, xml ) | Need Help?? |
BEGIN and use are each run immediately upon sight.
Looking at the TinyWiki code I linked from my initial
reply, you'll see the "use ops" strategically located -
before it are subs defined that I want to provide
priviledged fascilities and have input validation built in.
Beyond it is code that doesn't require priviledge and
things that result in evals, including evals of code
in pages. To generalize, put the use ops line before
unsane things. If someone can insert a BEGIN block with
arbitrary contents into the code, then they could just
delete the use ops line, too, couldn't they? Doing use ops
then requiring another file, or using another file on
a subsequent line is safe. Of course the main code
would be seperate from sandboxed code. The priviledged
conde contains the sandboxed code - not vice versa.
Look no further than the Safe manual page for examples. But this is far afield - the original question was whether or not Safe "thwarts" attacks. I'm not even talking about Safe.pm here. I only mentioned ops.pm because my experience is with it and I had a few footnotes to offer on it, but even with the additional safety afforded, I wanted to point out to the original author that it wasn't the correct idiom. The additional safety was too complex to implement, not completely trust-worthy, and there are better ways to do what he wants to do. -scott
In Section
Seekers of Perl Wisdom
|
|