mi problema es evitar que los usuarios carguen algún archivo malicioso en mi servidor web. Im trabajando en entorno Linux (debian).¿Cómo puedo evitar que cada archivo malicioso se cargue en mi servidor? (verifique el tipo de archivo)?
En realidad los archivos se manejan a través de php por este código:
function checkFile($nomeFile, $myExt = false){
if($myExt != false){ $goodExt = "_$myExt"."_"; }else{ $goodExt = "_.jpg_.bmp_.zip_.pdf_.gif_.doc_.xls_.csv_.docx_.rar_"; }
$punto = strrpos($nomeFile, '.');
$ext = "_".substr($nomeFile, $punto, 8)."_";
if(stristr($goodExt, $ext)){ return 1; }else{ return 0; }
}
aquí puedo especificar las extensiones permitidas para ser cargado, y si el archivo dont recibirlos i eliminar tan pronto como se complete la carga. Pero de esta manera deja que el usuario pueda cambiar la extensión de archivo con un simple cambio de nombre ... y eso es malo para mí; incluso si un file.exe (por ejemplo) nunca se ejecutará si se renombra en file.jpg (¿estoy en lo cierto?), no quiero tener posibles archivos de peligro en mi servidor.
Hay una manera, en php, python, o whatelse ¿puede un sistema unix ejecutar fácilmente, para comprobar el verdadero tipo de un archivo?
he probado el módulo de tipos MIME pitón, pero recuperar el ipotetical de tipo mime del archivo .. basado en la extensión -.-
Sí, el archivo es una buena forma de hacerlo. Además, probablemente valga la pena mencionar que los archivos .exe tienden a ser ejecutables de Windows y no se ejecutarán en Linux. –
Si bien .EXE no dañará un servidor bien configurado, es posible que se descarguen y dañen la máquina cliente de alguien. Lo mejor es validar todos los archivos, incluso aquellos que no son una amenaza directa. –
Esta respuesta es incorrecta y lleva a las personas a pensar que esta es una forma segura de validación, cuando en la mayoría de los casos es bastante inútil y fácilmente anulable. Por favor, mira mi respuesta para una explicación completa. – palako