Estoy pensando en guardar documentos cargados en una carpeta fuera de la webroot y alimentar las descargas con un script usando readfile(file)
.¿Cómo asegurar que un archivo cargado es un documento de MS Word?
Sin embargo, me pregunto si el lo siguiente sería suficiente para eliminar cualquier tipo de amenazas no podrían ser: la gente
$filename = basename($_FILES['uploaded_file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "doc") && ($_FILES["uploaded_file"]["type"] == "application/msword"))
{
execute rest of the code
}
que he leído recomienda el uso de finfo_open()
, pero mi servidor está bajo PHP 5.3 .0 así que no puedo usarlo. He intentado usar mime_content_type()
pero siempre me arrojará un "texto/plano" con cualquier tipo de archivo que envíe (no sé si estoy haciendo algo mal con eso).
¿Hay algo que pueda agregar para que este sea un proceso más seguro?
Me temo que no puedo hacer esto como usted dijo. Estoy en un alojamiento compartido y tengo muchas opciones restringidas. – Filgera