Загрузка аудио файлов с помощью PHP - PullRequest
1 голос
/ 18 мая 2011

Мне нужно сделать сайт, который позволит зарегистрированным пользователям загружать аудио файлы. Интересно, есть ли пуленепробиваемая практика в отношении безопасности? Сайт построен на PHP

Ответы [ 4 ]

2 голосов
/ 18 мая 2011

Проверьте тип MIME для загрузки файла

mp3 -> audio/mpeg

Подробнее здесь: http://www.w3schools.com/media/media_mimeref.asp

2 голосов
/ 18 мая 2011

Вы хотите тщательно проверить тип файла. Это означает, что не просто делает подстроку в имени файла, чтобы получить расширение. Расширение не является конкретным индикатором того, что файл на самом деле.

Как сказал Данзан, вы захотите проверить MIME-тип файла, используя такой код:

if ($_FILES["audioUpload"]["type"] == "audio/mpeg") {
//proceed with upload procedure
} else {
echo "Only mp3's are allowed to be uploaded.";
}

Это уменьшает вероятность того, что пользователь загрузит, скажем, вредоносный код PHP в каталог загрузки, практически до нуля.

1 голос
/ 18 мая 2011

Пуленепробиваемая проверка типа файла осуществляется с помощью комбинации getimagesize, fileinfo extension и функции mime_content_type ( Nette Framework свойство):

// $file is absolute path to the uploaded file
$info = @getimagesize($file); // @ - files smaller than 12 bytes causes read error
if (isset($info['mime'])) {
   return $info['mime'];
} elseif (extension_loaded('fileinfo')) {
   $type = preg_replace('#[\s;].*$#', '', finfo_file(finfo_open(FILEINFO_MIME), $file));
} elseif (function_exists('mime_content_type')) {
   $type = mime_content_type($file);
}
return isset($type) && preg_match('#^\S+/\S+$#', $type)
    ? $type 
    : 'application/octet-stream';

Вы не можете доверять любым данным, полученнымклиент, потому что они могут быть легко подделаны.

0 голосов
/ 18 мая 2011

Вы можете загрузить что угодно с помощью PHP. Вот пример: http://www.tizag.com/phpT/fileupload.php

Что касается безопасности, вы должны убедиться, что только определенным людям разрешено загружать материалы и что вы проверяете содержимое того, что они загружают (размер файла, тип файла и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...