アフィリエイト広告を利用しています

2019年08月05日

アップロードするときにファイルの中身をチェックする

納品したシステムについて、

画像ファイル以外に、Java scriptを記入したファイルやExeファイルをアップロードできる。

と、指摘された。

もちろん、アップロードするファイルの拡張子のチェックは行っているのだが、

.txt や .Exeを別の名前に変更してアップロードできるのがまずいと言われた。

ファイルの中身のチェックなどできるだろうかと思ったが、

調べてみると方法があった。

mime_content_type()関数がファイルの内容をチェックした結果を返してくれる。

 $return=mime_content_type(ファイル名);










拡張子返り値
gifimage/gif
exeapplication/x-dosexec
pdfapplication/pdf: 2A.doc
phptext/x-php
xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
txttext/plain




// ファイルの MIME content typeをチェックする
function _mineContentType($filename) {
$check_mine = mime_content_type($filename);

// textファイルとexeファイル以外は false を返す
if (preg_match('/text|exec/i', $check_mine)) {
return false;
} else {
return true;
}

}










posted by db-engineer at 00:00 | Comment(0) | PHP

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

検索
最新記事
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド