プロが教える店舗&オフィスのセキュリティ対策術

あるWebページのフォームから入力された文字列を引数としてCGIプログラム中でsystem("program argv[1]")としてあり、サーバー上でprogramが実行されるようにしたいのですが、実行させるとapacheのエラーログに次のように出ます。

[error] Insecure dependency in system while running setuid at /var/www/cgi-bin/change.cgi line 42., referer: http://aaa.bbb.ac.jp/cgi-bin/testsasl.html

Webでちょっと調べたところTaintチェックで引っかかっているようなのですがそうなのでしょうか。もしそうなら以下のことについてお聞きします。

1.一時的にTaint機能を解除するにはどうすればいいですか。
2.Taint機能を有効にしておいてsystem()が動くようにするにはどうすればいいですか。
3.sudoを使ってCGIからプログラムを動かすという方法について、どのような手順が必要ですか(参考URLでも構いません)。

スクリプトのエラーの部分です。
if ($args{'account'} eq 'username') {
printf "パスワードを変更します。";
system("/usr/sbin/saslchange $args{'account'} $args{'newpassword'} ");

A 回答 (2件)

下の、「taint モードの盲点」に詳しいかと。



http://www.ipa.go.jp/security/awareness/vendor/p …


perl の診断メッセージは
http://www.namazu.org/~tsuchiya/perl/info/perl-j …
を参考に。
    • good
    • 0

あ、そのまえに同じURLの、「エラーの回避」を読んで。



ほかには、
http://www.w3.org/Security/Faq/www-security-faq. …

さっきのところからリンクされてるところだが、結構いいやも
    • good
    • 0
この回答へのお礼

ありがとうございます。↓のサイトを参考にしたらばっちりできました。

お礼日時:2003/09/06 19:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!