ファイルアップロード機能の不備 02 - yujitounai/helloworld GitHub Wiki
拡張子フィルタのバイパス 否認リストはバイパスされる php-fpmを使っている場合 security.limit_extensionsの デフォルト値が .php .pharであるため
<?php
$cfg['DENY_EXTS'] = array( 'asp','jsp','php','cgi');
function checkExt($filename)
{
global $cfg;
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
return in_array($ext, $cfg['DENY_EXTS']);
}
$tempfile = $_FILES['fname']['tmp_name'];
$filename = './' . $_FILES['fname']['name'];
if (is_uploaded_file($tempfile) && !checkExt($tempfile)) {
if ( move_uploaded_file($tempfile , $filename )) {
echo $filename . "をアップロードしました。";
} else {
echo "ファイルをアップロードできません。";
}
} else {
echo "ファイルが選択されていません。";
}
?>
<form action="fileupload-02.php" method="post" enctype="multipart/form-data">
<input type="file" name="fname">
<input type="submit" value="アップロード">
</form>
pharファイルをアップロードすればいい