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