CGI-BBS > 電子掲示板 > その他 > セキュリティ対策について


カレッヂ
カレッヂ


質問者 しぴ  投稿日 5/4(金) 14:28:55
CGI初心者なのですが、掲示板のデータファイルを意図的に
消すようなことは可能なのでしょうか?また、それを阻止
するには、受けとったフォームデータの個々について、
|や$とかいった記号をカットするだけで100%安全
でしょうか?

言い換えると、フォームにいかなる悪戯目的のコードを書かれて
送信されても、安全(内部データファイルを閲覧されたり、削除さ
れたりしないため)にするためにはどうすればいいのでしょうか?

perlのプログラムの経験が浅い私自身が考えるに、受け取った
フォームデータを正規表現をつかって、\や|をカットすればい
いと考えますが、ユニックス等の知識が不足しているため、万
全の対策が思いつきません。

なにか、アドバイスをいただけると幸いに存じます。よろしく
お願いいたします。
回答者 しあわせのツボ  [削除]  投稿日 5/5(土) 02:56:02
普通に掲示板を立てる程度であれば、それほど神経質にならなくても大丈夫だと思います。
システムコマンドを使わずPerlの関数だけで組めば特殊文字があっても問題ないでしょうし、SSIコマンドを打たれてもCGI経由でログを出力すればSSIは働きません。
むしろ危険なのは、パスワードもかけずにログ編集用のCGIを置いていたり、管理者パスワードに破られやすいものを設定していたり、といった部分です。

どうしても心配であれば、できあいの掲示板スクリプトはまず安全でしょうから、それを改造する所から始めればいいでしょう。
質問者 しぴ  [削除]  投稿日 5/15(火) 10:39:52
しあわせのツボ さんから回答いただけるなんて、うれしいです。
こちらの返答が遅れて申し訳ございませんでした。

システムコールの部分がどういった手法なのか、ユニックス初心者
なんで、?なのですが、ちょっとずつ勉強していこうと思います。

とりあえず、システムコールしなければ安全という解釈でいたい
と思います。

あとは外部からの情報を引数に代入しないとか、代入する
場合は、やばそうな文字を削除しておくとか、そういうこと
で、よろしいでしょうか?

パスワードについては、現実にパスワードをやぶるソフトなどを
つかったことがないだけに、盲目的になりがちですね、注意した
いと思います。

返信(回答)する


Web裏技