2016-04-12 20 views
0

私は次のPHPコードを使用してcsvファイルをアップロードしています。私は良い検証を使用したいだけでなく、MIMEタイプまたはファイル拡張子を介して。どうやってやるの?PHPでのファイルアップロードの検証

if (isset($_POST['submit'])) { 
    $isfileok = false; 
    if (is_uploaded_file($_FILES['filename']['tmp_name'])) { 
     echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; 
    $isfileok = true; 
    } 
    if($isfileok){ 
     //do something 
    } 
} 
+2

あなたにはどのような妥当性確認がありますか? – Joni

+0

@ジョニー簡単にバイパスすることができない検証。たとえば、私がリクエストを傍受した場合、MIMEタイプを変更することができます。また、ファイル拡張子を悪意のあるファイル拡張子からcsvに変更することもできます。 – Ayman

+1

「有効」とは何ですか? CSVファイルのみをアップロードできるようにしたいのですが、たとえばPDFのjpgやExcelのシートなどはアップロードできませんか?アップロードされたファイルをウイルススキャンしたいのですが? – Joni

答えて

1

ファイルコンテンツ内のパターンを検索して、タイプを判別できます。 Tikaのmime magic detection機能を使用したプロジェクトでこの問題を解決しました。 https://tika.apache.org/1.1/detection.html

関連する問題