http://www.kent-web.com/data/postmail.html

これの脆弱性には呆れたよ。
KentはCGI制作業もやってるんだろ・・・。
こんな素人がやるようなミスをおかすなと。


1. Perlのソースが汚い
推奨されていないことも平気でやるわ、コーディングの質も悪いわ、
タブやインデントの入れ方も汚い、use strict すらしていない。
こういうのがセキュリティホール、実行速度低下、バグの原因になる。

2. 出力するHTMLのソースが汚い
W3C準拠が望ましいのは勿論だが、そういうレベルじゃなく汚いね。
例えば、テーブルにボーダーをつけるためだけに、そのテーブルを色つきのテーブルで囲っている。
CSSを数行追加すればボーダーぐらいできるのに、テーブルで囲ったりするから、
ソースは汚くなるわ、容量は大きくなるわ、第三者が修正しにくくなるわでめちゃくちゃ。
KentのCGI修正しようとするとこの汚さでストレスがたまる。
しかも、コーディングルールを決めていないせいか、インデント、タブが適当なのはもちろんのこと、
ダブルクオートやシングルクオートも使ったり使わなかったりでめちゃくちゃ、修正時に自動置換するなどのことができなくなってる。

3. パスワードをCGIに直書き
管理用のパスワードをCGIに直書き、非常にレベルが低いとしか言いようが無い。
そもそも、CGIが保存するデータはWebサーバのドキュメントルート外におくべきだ。

実害がないとかほざくかもしれないが、サーバの不具合でCGIのソースが見えてしまったりすることもある。
過負荷で処理できない場合や、動作するCGIの拡張子を変えた場合などに見えてしまうかもしれない。
ドキュメントルート内に見られて困るデータを置くこと自体が間違えなんだ。
これは少しでも業務でWebプログをやったことがある人にとっては常識だと思う。
(勿論、他の方法でセキュリティ対策していればいいが、Kentは拡張子がcgiだから問題ない、といった低レベルな理論を主張しているだけ)