Perché questo codice non consente il caricamento di file audio?

0

Desidero consentire all'utente di caricare file audio sul mio sito Web, ma dopo aver scritto il codice risulta che non è in grado di caricare file audio. Ho provato altri tipi di file e sta funzionando per loro.

Ecco il modulo HTML:

<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="audioFile"/>
    <input type="submit" value="Upload Audio" name="save_audio"/>
</form>

Ed ecco il codice php:

<?php 

if(isset($_POST['save_audio']) && $_POST['save_audio']=="Upload Audio") { $dir='uploads/'; $audio_path=$dir.basename($_FILES['audioFile']['name']);

if(move_uploaded_file($_FILES['audioFile']['tmp_name'],$audio_path))
{
    echo 'uploaded successfully.';
}else 
    echo 'Upload Failed';

} ?>

Con altri tipi di file sto ricevendo l'eco "Uploaded successfully" ma quando provo un file audio ottengo "Upload Failed".

    
posta Chibesa Malembe 15.12.2018 - 10:14
fonte

1 risposta

0

Da un punto di vista della sicurezza (ho trovato questo su sicurezza SE); questo codice potrebbe essere vulnerabile agli attacchi directory traversal perché il nome file non viene disinfettato prima di utilizzare move_uploaded_file . Cosa succederebbe se l'utente avesse pubblicato un file chiamato ../../../etc/passwd ad esempio? Il manuale menziona l'igienizzazione degli input e utilizza open_basedir .

link

    
risposta data 15.12.2018 - 10:35
fonte

Leggi altre domande sui tag