in reply to Secrets & Lies & Perl
What else should I be watching out for? And as a general practice, how much bullet-proofing do programmers put into code before they say that enough is enough. I mean, theoretically I could check every variable all the time to make sure it is about what I expect it to be like, I could wrap almost everything in evals to trap errors, I could go on. But how do you draw the line?
A rational way to "draw the line" would be to do a risk assessment and cost/benefit analysis on your code. A good introductory discussion is provided in Chapter 2 "Policies and Guidelines" of Practical Unix and Internet Security by Simon Garfinkel and Gene Spafford.
Also, if I recall correctly, Mr Schneier himself presents an approach to threat modeling and risk assessment in the book you mention.
To actually "draw the line", you will have to think and decide for yourself. No magic bullets here. And it will probably not be a really "rational" decision, either.
Brainbench MVP for Perl