|No such thing as a small change|
... In fact, one recent node specifically alluded to the fact that it was offering insecure advice in order to implement an easy to use solution. This is bad. ...
Thanks, Ovid, for your grace in not specifically identifying my post (Run arbitrary UNIX commands on webserver without telnet), but as the erstwhile author, I cannot elude responsibility (or shall we say irresponsibility). Having, for the most part, lurked on PM for months prior to posting the node to which you allude, I was overjoyed to finally have something I felt worthy of contributing.
In my own defense, it all started (innocently enough) when, in answer to a largely unrelated question, given the opportunity to respond with my own solution (Re: Re: Modules that get along with use lib) to the problem of not having shell access to an ISP web account, I allowed my ego to get the better of me and thought of posting it in Craft. Then (unfortunately), while typing it in there, I had the amazing brain flash of an impulse to try to "improve" upon the original idea and to add a text entry field.
Boy! Should I have ever thought THAT one through! I even tried defending the practice (several times!) further down in the thread. What an idiot!
Truth is, I've never actually used the form-based script on a site, instead using clones of the hard-coded command version I had used as my response.
Lately, I've taken merlyn's advice to heart and switched to this (Re: Run arbitrary UNIX commands on webserver without telnet), eliminating even the Perl interpreter startup delay. I don't even leave them executable anymore when not in use; I chmod -x them before ending the FTP connection.
To bring this ramble home, I wholeheartedly embrace your theme of promoting security awareness; if it's at all possible to do so, I recant.
You can give a man a fish and feed him for a day ... Or, you can teach him to fish and feed him for a lifetime