画像ファイル以外に、Java scriptを記入したファイルやExeファイルをアップロードできる。
と、指摘された。
もちろん、アップロードするファイルの拡張子のチェックは行っているのだが、
.txt や .Exeを別の名前に変更してアップロードできるのがまずいと言われた。
ファイルの中身のチェックなどできるだろうかと思ったが、
調べてみると方法があった。
mime_content_type()関数がファイルの内容をチェックした結果を返してくれる。
$return=mime_content_type(ファイル名);
拡張子 | 返り値 |
---|---|
gif | image/gif |
exe | application/x-dosexec |
application/pdf: 2A.doc | |
php | text/x-php |
xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
txt | text/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;
}
}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image