Perlでのディレクトリトラバーサル攻撃対策
2011/7/600:17:25
Perlでのディレクトリトラバーサル攻撃対策
ディレクトリトラバーサル対策のため変数$filenameに/や\が含まれていれば処理を中断するようなプログラムを組むにはどうすればいいでしょうか?
if($filename !~ /[^ 0-9A-Za-z]/){
処理
}
print "エラー";
とするとInternal Server Errorになってしまいます
正規表現だけでなくうまく対策する方法があれば教えてください
補足if($filename !~ /[^ \w]/){
$test = Jcode->new($filename)->sjis;
print (qq(Content-type:application/octet-stream; name=\"$filename\"\n));
print (qq(Content-Disposition: attachment; filename=\"$filename\"\n));
open(IN,"$filename");
print <IN>;
close( IN );
}else{
print "エラー";
}
書き直してみましたがエラーです
問題の部分はこのようなソースです
この上にperlのパスやjcode.pmがあります
仕様はWin+Apache2+perl5です
この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。
ベストアンサーに選ばれた回答
d4qd4qさん
編集あり2011/7/618:45:09
if($filename !~ /[^ \w]/){
}
else {
print "エラー";
}
# \wは0-9A-Za-zの文字クラス
ではないでしょうか。
また、print "エラー";
の前に、HTTPヘッダ(content-type:text/html; ...)
は出力していますか?
# 補足について
私の環境ではエラーが出ませんでした。
use CGI::Carp qw(fatalsToBrowser);
されてみてはいかがでしょう?(CGIでエラーが出た場合エラーメッセージを表示)
ただ、use CGI::Carpされる前のエラーはさすがに表示できませんが。
ベストアンサー以外の回答
1〜1件/1件中
2011/7/600:46:54
こんにちは
正規表現だけでというのは、if(・・・)だけでってことでしょうか?
私にはわかりませんのでググッてみました。
1行では終わってないようですが、IPAのサイトに参考になるか分かりませんがコードがありました。
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/b07_07...
関連度の高い質問
このカテゴリの回答受付中の質問
- linuxやMacOSでVB windowsフォームアプリケーションを動かすには、次の1,2はで...
- D言語のstdパッケージのfileモジュールにあるreadText関数を使って、日本語の文章...
- フレームワーク「Codeigniter」ヘッダー、コンテンツ、フッターの区分け お世...
- 課題5がわかりません…。 プログラミング得意な方お願いします…。
- jquery mobileについてです。 theme rollerで作成したテーマをヘッダでインクルー...
- VB.NETのdatagtidviewで、スクロールバーの幅を変える方法はありますか?
- FullCalenderをMonacaで利用することは可能でしょうか??
- vagrantのboxには、boxを作成したvagrantのバージョンとboxを使用するvagrantのバ...
- :1B800000(0E143EEED305CD0F80070DC204807611000015C212801DC21280C9)5F :000000...
- vb.netについての質問です。 構造体の中の配列と固定長文字列についてです。 htt...
このカテゴリの投票受付中の質問
- manifestって何ですか?ソフトのやつです。
- 下のURLのサイトの[コラム].NET Frameworkのバージョンには注意の所に「さらに...
- 人工知能はプログラムで作られているんですよね? では、ディープラーニングも人...
- dxrubyについて質問です 今ゲームを作成していて、表示した画像をSPACEキーを...
- 大至急 プログラミング課題代行お願いします 本日の14:30までに この課題を...
- プログラミングの質問です。 各桁の数を足してそれを最後まで続けて1桁になるまで...
- PythonのIDLEの使い方についての質問です。 コマンドを打っているうちにどんどん...
- 今のセキュリティソフト(例:マカフィー、ノートン)はどのようなプログラミング言...
- 500枚!!c言語の質問です。 以下の問題を解かなければいけないのですが、ど...
- windows、MacOS、Linuxで使えるVB.netのアプリケーションを作りたいんだけど、Mon...
この質問につけられたタグ
専門家が解決した質問
-
htmlについて、すごく初歩的な質問なのですが、 以下のタグ <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf8"> <title>はじめてのHTML</titl...
terapadで保存するときに、文字コードをHTMLタグで指定してある「UTF-8(BOMなし)」以外で保存してしまったせいでしょう。 保存したHTM...
- 新谷貴司
- Webコンサルタント
-
墓参りは毎年やるもんなんですか❓
調査結果によると、1年間のお墓参りの回数は「年に2~3回」という人が多いようです。 中には年間20~30回という方もいれば、さら...
- 射場一之
- お墓ディレクター
恋愛に悩める子羊を助けて!
回答受付中の質問
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
家族がテレビに翻弄(ほんろう)されています
みんなのアンテナ
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。