Autor
|
Tema: Como hacer para que los usuarios puedan subir a mi web (Leído 4,605 veces)
|
Naimaderis
Desconectado
Mensajes: 74
|
Hola , soy relativamente nuevo en la creacion web , y lo que quiero hacer es que los usuarios puedan subir textos a mi pagina , osea como este tema que estoy creando ahora , pero que aparezca en mi web , nose si me explico bien
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Upload1.html:<form method="post" action="imagenes/upload.php" enctype="multipart/form-data"><!-- Pasar el archivo por method POST --> <input type="file" size="75" name="file" id="file"> <input type="submit" value="Subir"> </form>
Upload.php:<?php header("Content-Type: text/html;charset=utf-8"); $allowedExts = array("gif", "jpeg", "jpg", "png", "txt"); $temp = explode(".", $_FILES["file"]["name"]); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "text/plain") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && in_array($extension, $allowedExts))/** Con esto compruebas si el tipo de archivo está permitido, y si la extensión está permitida **/ { if ($_FILES["file"]["error"] > 0) { echo "Código de error: " . $_FILES["file"]["error"] . "<br>"; } else { { echo $_FILES["file"]["name"] . " ya existe. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "" . $_FILES["file"]["name"]);/** Guardar el archivo **/ } } } else { echo "Archivo inválido."; } ?> </body>
Te lo comenté un poco. Ese es el código que tengo yo en mi web. Lo reduje lo máximo posible xD Si tienes alguna otra duda, pregunta :p
|
|
|
En línea
|
|
|
|
Maurice_Lupin
Desconectado
Mensajes: 356
GPS
|
Una consulta ivancea96, también implementaste seguridad pues según leo te pueden subir un PHP Shells. Si la tienes, puedes comentarnos?.
Saludos.
|
|
|
En línea
|
Un error se comete al equivocarse.
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Bueno. Haí hay un if: if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "text/plain") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png"))
Los "$_FILES["file"]["type"]" coprueban que tipo de archivo me están subiendo. La segunda parte, "in_array" comprueba si la extensión del archivo está entre las permitidas.
|
|
|
En línea
|
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
|
Re:
« Respuesta #5 en: 20 Marzo 2014, 08:17 am » |
|
Siempre puedes analizar el nombre del archivo. O el contenido incluso.
Enviado desde mi ST21i mediante Tapatalk
|
|
|
En línea
|
|
|
|
engel lex
|
#!drvy por otro lado al subirse el archivo puedes revisar los bytes iniciales y finales para asegurarte que sea un formato valido, y renombrarlo con la extensión que deba tener... incluso puedes analizarlo un poco más (por lo menos las imágenes) y pasarlas por GD y cosas así... dudo que con estas medidas pase una shell y siga siendo ejecutable
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
karmany
|
Como te comentan, ten cuidado con los archivos que te suben.
¿Por qué no te creas un foro? ¿POr qué no creas, si no, un blog y dejas los comentarios abiertos? o usas un CMS.
No permitas subir archivos y menos a cualquiera.
|
|
|
En línea
|
|
|
|
EFEX
Desconectado
Mensajes: 1.171
"Dinero Facil"
|
Tambien podrias utilizar una api de terceros.
Subir archivos con dropbox y para imagenes imgur es bastante descente(siempre que el contenido que suban los ususarios no viole los terminos y servicio de la api).
|
|
|
En línea
|
|
|
|
|
|