![]() |
| カレッヂ |
質問者 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裏技 |