CGI-BBS > アクセスカウンタ > その他 > リンクカウンタのセキュリティホールをなくしてほしい。


カレッヂ
カレッヂ


質問者 saito  投稿日 2/15(土) 12:47:04
Emailは受け付けていないということですので、失礼かとは思いましたが、投稿します。
使いやすそうでしたので、リンクカウンタlinkc v1.10を、
私が所属する部署のWEBサーバーにインストールしてほしいと要請したところ
WEB管理者から、
 | このCGIはURL文字列に含まれるコードをそのまま表示したり、
 | 任意のファイル名を指定してそれを表示できたりなど
 | セキュリティホールが見受けられますので
 | インストールするべきではありません。
との返答でした。
私は、perlはわかりませんので、どこにセキュリティホールがあるかわかりませんが、
そちらでは、どこがセキュリティホールであるか、心当たりがあるのでしょうか?
もしあるのなら、
セキュリティホールを除いたバージョンを作成したほうがよいのではないでしょうか。

プロバイダ参照:http://www.is.aist.go.jp/
サーバのOS:UNIXサーバ
パソコンのOS:(未選択)
エディタ:
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:(未選択)

回答者 まさ  [削除]  投稿日 2/16(日) 11:25:10
このひとつの回避策とすればPerlをTaintモードで動かすというものがあります。

#!/usr/bin/perl

を

#!/usr/bin/perl -T

とすればPerlは汚染検出用モードに入ります。

このモードでは、フォームからのデータのみでなく、コマンドライン引数、
環境変数、ローカル情報、その他幾つかのシステムコール(readdir、readlink、
getpw*呼び出しのgecosフィールド)の結果、すべてのファイル入力などを汚染
データとして扱い、これらのデータをサブシェルを起動するコマンド(system、
execなど)や、ファイルやディレクトリ、プロセスに変更を加えるようなコマンド
(unlink,umaskなど)の引数として使用した場合、エラーとしてくれます。

これと
if ($FILE =~ /\W|^$/) { &error(..); }

があれば一応openの問題はクリアーするでしょう。



 
質問者 saito  [削除]  投稿日 2/21(金) 14:22:58
フォローありがとうございます。

#!/usr/bin/perl -T
-Tを加えただけでは下記のエラーメッセージが出て終わってしまいます。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

if ($FILE =~ /\W|^$/) { &error(..); }
をどこかに入れれば済む話なのかわかりませんが、
私は、perlが分かりませんので、勉強してから、トライしようと思います。

現在は、別のリンクカウンタを探しているところです。

ありがとうございました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技