Autor
|
Tema: Este upload es seguro? (Leído 4,921 veces)
|
RicRed
|
Hola a los usuarios del foro, este upload de imagenes por db seria seguro? <?PHP if (isset($_POST['enviar'])) { $tipos = array("image/gif","image/jpeg","image/bmp","image/pjpeg"); $maximo = 1000000; //1000Kb { // Se ha subido? if (in_array($_FILES['imagen']['type'],$tipos) && $_FILES['imagen']['size'] <= $maximo) { // Es correcto? $fp = fopen($_FILES['imagen']['tmp_name'], 'r'); //Abrimos la imagen $imagen = fread($fp, filesize($_FILES['imagen']['tmp_name'])); //Extraemos el contenido de la imagen fclose($fp); //Cerramos imagen $nombre = addslashes($_FILES['imagen']['name']); // Arreglamos el Nombre else $nombre = $_FILES['imagen']['name']; $query = "INSERT INTO imagenes (imagen,nombre,tipo,descripcion,fecha,ip) VALUES "; $query.= "('".$imagen."','".$nombre."','".$_FILES['imagen']['type']."','"; $query.= $_POST['descripcion']."','"; $query.= date("d/m/y",time())."','".$_SERVER['REMOTE_ADDR']."')"; } else echo "El formato del archivo no es correcto o es mayor de 100Kb"; } else echo "La imagen no ha sido subida"; } //Desconexion DB ?>
|
|
|
En línea
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
1) No es para nada recomendable guardar la imagen en forma binaria dentro de la DD.BB, vas a sobrecargar tu server. Mejor solo guarda el path como una cadena de texto. 2)Antes de copiar la imagen de la carpeta temporal de subida ($_FILES['imagen']['tmp_name']) a su ubicacion final, es recomendable revisar que se trate efectivamente de una imagen con la funcion getimagesize. Mas que nada para evitar RFI/LFI. Si dicha funcion devuelve false es que el archivo proporcionado por el usuario no se trata realmente de una image, independientemente de su extenision/mime-type Saludos
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
RicRed
|
seria mejor subir las imagenes en una carpeta con la funcion getimagesize, para evitar que suban shells al sistema. Otra cosa, este codigo que se encuentra en esta web: http://www.marcofbb.com.ar/upload-de-imagenes/Seria seguro? no subiran archivos php o shells al sistema? Codigo: <?php // V2 $varallw = array("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/x-png"); $tips = array("bmp","gif","jpeg","png","jpg"); $varpath = "http://samples.unijimpe.net/imagehosting.php?image="; $varstat = ""; if ($_POST["action"] == "upload") { $varname = $_FILES["imagen"]['name']; $vartemp = $_FILES['imagen']['tmp_name']; $vartype = $_FILES['imagen']['type']; if (in_array($vartype, $varallw) && $varname != "") { $varname = $varrand.".".$i; if (copy($vartemp, "tmp/".$varname)) { $varpath = $varpath.$varname; $varstat = "ok"; } else { $varstat = "Error al subir el archivo"; } } else { $varstat = "Archivo no valido"; } } else { $varstat = "Archivo no valido"; } } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>PHP ImageHosting - unijimpe</title> <link href="cssupload.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="420" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="413" height="40" class="titulo">PHP ImageHosting - unijimpe - <a href="http://www.entra-ya.com.ar/">entra-ya</a> </td> </tr> <tr> <td class="text">Aloja gratuitamente tus imagenes con PHP ImageHosting:</td> </tr> <tr> <form action="imagehosting.php" method="post" enctype="multipart/form-data"> <td height="50" valign="top" class="text"> <input name="imagen" type="file" class="casilla" id="imagen" size="35" /> <input name="enviar" type="submit" class="boton" id="enviar" value="Upload Image" /> <input name="action" type="hidden" value="upload" /> </td> </form> </tr> <?php if ($varstat == "ok") { ?> <tr> <td class="textinf"><strong>Confirmación:</strong><br> Archivo publicado satisfactoriamente. Puedes utilizar las siguientes opciones para enlazarlo:<br> <strong>Enlace HTML:</strong> <br> <input name='txt1' type='text' value='<a href="<?php echo $varpath; ?>"><img src="<?php echo $varpath; ?>" border="0" /></a>' size='60'> <br> <strong>Enlace Directo: </strong><br> <input name='txt2' type='text' value='<?php echo $varpath; ?>' size='60'></td> </tr> <?php } else { ?> <?php if ($varstat != "") { ?> <tr> <td class="textinf"><strong>Error:</strong><br> <?php echo $varstat; ?> </td> </tr> <?php } ?> <?php } ?> </table> <?php if ($varstat == "ok") { ?> <p align="center"><img src="tmp/<?php echo $varname; ?>"></p> <?php } ?> <?php if ($_GET['image'] != "") { ?> <p align="center"><img src="tmp/<?php echo $_GET['image']; ?>"></p> <?php } ?> </body> </html>
Saludos.
|
|
« Última modificación: 30 Octubre 2012, 18:00 pm por asasasaq »
|
En línea
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
No usa getimagesize, por lo estas en lo mismo, solo revisa la extension del archivo, asi que es facil colarle una shell. Pero es no tan dificil imaginar como implementarle eso al mismo, unas 4 o 5 lineas de codigo....
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
gowend
|
Prueba con estas lineas de código, sabiendo que ya esta abierta una conexión a mysql: <?php // Ya iniciada la conexion, recibimos datos de un form $id = $_POST['id'];
$nombres = $_FILES['foto']['name'];
$ruta_temp = $_FILES['foto']['tmp_name'];
$rutaN = "img/".$nombres;
$array_ext = array("png","gif","jpg","GIF","JPG","Gif","Jpg","Png","PNG");
$ext = pathinfo($nombres);
if (is_uploaded_file($ruta_temp)) { if (array_search($ext['extension'],$array_ext)) { copy($ruta_temp,$rutaN); mysql_query("UPDATE registro SET imagen= '$rutaN' WHERE id ='$id'; ");
}else{
echo "Solo formato de imagenes: Gif, Jpg, Png"; print_r ($ext['extension']);
} }else{ die ("Escoja una imagen"); } ?>
|
|
|
En línea
|
Gowend132 El conocimiento es LIBRE!!!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Es este código seguro?
« 1 2 3 »
PHP
|
NewLog
|
20
|
8,010
|
30 Enero 2008, 04:00 am
por Carxl
|
|
|
¿Qué tan seguro es este login que he planteado en un sitio web en ASP.Net?
Desarrollo Web
|
TwisteD420
|
4
|
4,899
|
4 Abril 2012, 02:42 am
por TwisteD420
|
|
|
Upload de imagenes seguro PHP
Nivel Web
|
RicRed
|
2
|
4,425
|
19 Mayo 2012, 23:33 pm
por WarGhost
|
|
|
Alguien entra en mi PC (seguro seguro) me pueden ayudar?
Seguridad
|
BanKFull76
|
3
|
5,545
|
9 Julio 2012, 16:15 pm
por Saberuneko
|
|
|
Hola, este método es seguro?
Dudas Generales
|
Terminator5
|
4
|
2,490
|
8 Marzo 2023, 16:38 pm
por Falo Zipo Pixote
|
|