11.1.5 セキュリティについての注意

一つの重要なルール: もし外部プログラム(os.system()を使うような)を呼び出すと、 任意の文字列をクライアントからシェルに渡すことになります。 これはよく知られたセキュリティホールで、 利口なハッカーならweb上のどこででも任意のシェルコマンドを実行するような、 ばか正直な CGIプログラムを作ることができます。 CGIプログラムの要求は必ずしもあなたのフォームから来る必要はないので、 URLやフィールド名の一部ですら、信用できるものではありません!

安全サイドに立てば、もしフォームの入力をシェルコマンドに渡したいのなら、 入力文字列には英数字、ダッシュ、アンダースコアとピリオドだけしか 含まれていないことを確かめるべきです。


guido@python.org