tengo el siguiente codigo el cual uso para subir imagenes, especificamente fotos de alumnos, que puedan subir ellos mismos, le coloque el criterio que solo puedan subir archivo de extension .jpg y un tamaño maximo de 100 kb.
pero viendo el codigo me pregunte si una persona mal intencionada viene y agarra algun virus, exploit o cualquier otro y le coloca de extension .jpg, podria tener problemas, ya que dejaria subir el archivo igual y podria ejecutarse de alguna manera dentro del servidor.
si alguien tiene alguna idea para darle mañor seguridad le agradezco la respuesta
Código PHP:
<?
session_start();
$cedula= $_SESSION["cedula"];
//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
if($_SESSION["autorizacion"]=="si")
{
?>
<script type='text/javascript' language='javascript'>
alert('LA EXTENSI'+"\u00d3"+'N O EL TAMA'+"\u00d1"+'O DE LOS ARCHIVOS NO ES CORRECTA \n-se permiten archivos .jpg \n-se permiten archivos de 100 kb m'+"\u00e1"+'ximo')
document.location.href='alumnos/infoalum.php'
</script>
<?
}
else
{
?>
<script type='text/javascript' language='javascript'>
alert('LA EXTENSI'+"\u00d3"+'N O EL TAMA'+"\u00d1"+'O DE LOS ARCHIVOS NO ES CORRECTA \n-se permiten archivos .jpg \n-se permiten archivos de 100 kb m'+"\u00e1"+'ximo')
document.location.href='profesor/infoprofe.php'
</script>
<?
}
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "fotos/".$nombre_archivo) && rename("fotos/".$nombre_archivo,"fotos/".$cedula.".jpg")){
if($_SESSION["autorizacion"]=="si")
{
?>
<script type='text/javascript' language='javascript'>
alert('SU IMAGEN FUE SUBIDA DE FORMA EXITOSA')
document.location.href='alumnos/infoalum.php'
</script>
<?
}
else
{
?>
<script type='text/javascript' language='javascript'>
alert('SU IMAGEN FUE SUBIDA DE FORMA EXITOSA')
document.location.href='profesor/infoprofe.php'
</script>
<?
}
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>