01/11/03 02:26.net
(37の続き)
あとはPerlをTaintモードで起動してチェック
一行目を
#!/usr/local/bin/perl -T
これで入力チェックを*ちゃんとやっているか*がチェックされる。
・C/C++の場合
これも「ユーザの入力を信頼しない」しかない。
特にデーモン、setuidなプログラム、etc...を書く場合は要注意
あと環境変数も信頼しないこと(kon2の脆弱性)
使ってはいけない関数一覧:
gets()……論外。fgets()を使うこと
strcpy()……strncpy()を使う
sprintf()……snprintf(), vsnprintf()を使う
# ここらへんはbuffer overrun
mktemp()……mkstemp()を使う
# race condition
今思いついたのでこのくらいかな。
付け足し、突っ込みあったらお願いします。