Un-CGI

お約束: シェルスクリプティングを使うか否かに関わらず、外部から与えられたデータに基づいて動作する CGI プログラミングにはセキュリティ上の懸念が存在します。以下の情報で何らかの被害にあったとしても、筆者は一切の責任を負いかねます。
ちょっとした CGI を、シェルスクリプトで書きたいことがあります。本当は PerlPython で書くのが安全なのでしょうが、シェルスクリプトで書いたほうがお気楽な場合は存在します。しかし、HTTP サーバーから与えられる QUERY_STRING を自力でデコードするのは厄介な問題です。
そんなこんなを考えていたら、Un-CGI というツールを見つけました。アプリケーションとしての CGI にラッパーとして被せることで、QUERY_STRING をデコードしてから CGI に渡してくれるのです。ただし、相変わらず query に含まれるセミコロン(;)やアンパサンド(&)などを、そのままシェルで解釈しないよう、注意が必要です。

参考

セキュリティについて。