初心者とセキュアプログラミング

Web アプリってやつは入力値を処理して、SQL や HTML などのほかのコンピュータ言語の出力を生成する必要があるわけで、ただしく処理するには当然その段階でエスケープ処理が必要になる。だけども、初心者ってやつはその処理がなかったりいい加減だったりするわけで、これってセキュリティ云々以前の問題で入力値のハンドリング自体に問題があるといえるんではないかなぁ。だからイントラで閉じてれば問題ないかといえばそれも微妙な気がする。
で、そこそこセキュアな Web アプリを初心者に作らせようとすればどうすればいいんだろう。
とりあえず思いつくのは SQL をできるだけ意識しなくてすむライブラリを標準にして、文字列連結で SQL の構築をさせないようにするだとか、標準で勝手に HTML の実体参照変換を行うようにして、それを無効にするほうが余計な手間になるようにするだとか、かなぁ。
あと外部コマンド実行もシェルを経由せずに実行できるのを用意しておいた方がいいと思う。Rubyist だって

def index
   @files = `find #{params[:dir]} -type f`
end

とかやる可能性は十分あるし。