Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2013, 06:05
Avatar de iEnrique
iEnrique
 
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Busqueda Usar la seguridad.

Bueno, en mi página web un amigo mío que sabe de programación me la ha hackeado; es decir, para que aprenda. Y lo que me ha dicho por Skype es lo siguiente:

Cita:
Veras, para evisar ataques XSS solo usa strip_tags(), eso lo que hace es eliminar los tags HTML
Usa mysql_real_escape_string() para evitar ataques SQLi
Usa htmlspecialchars() para eliminar las funciones HTML de una variable.
Para determinar las extenciones del formulario de imágenes tienes que determinar el tipo MIME, este es el que te mostrará el tipo de extención a usar.
No entiendo muy bien, os muestro, al subir los datos a PHP de mi formulario de imágenes es el siguiente:

Código PHP:
Ver original
  1. $usuario = $_SESSION['usuario']; //Cojo el usuario
  2.         $post = $_POST['post']; //Cojo el mensaje
  3.     $con=mysql_connect($mysql_host, $mysql_user, $mysql_password);
  4.     mysql_select_db($mysql_database, $con); //Me conecto
  5.    
  6.     if($_FILES['imagen']['tmp_name'] == NULL){ //Compruebo que hay imagen
  7.         mysql_query("INSERT INTO posts(usuario, post, nombre) VALUES('".$usuario."','".$post."','".$nombre."')"); //Si no hay imagen solo sube el texto
  8.         header("Location: index.php"); //Y vuelve al inicio
  9.     }else{ //Si hay imagen...
  10.     include('conexion.php'); //Me conecto
  11.     $ruta = "imagen"; //Selecciono la carpeta
  12.     $archivotemporal = $_FILES['imagen']['tmp_name']; //Esto no sé para que es, si me lo podéis explicar me lo decís xddd
  13.     $archivo = $_FILES['imagen']['name']; //Esto tampoco, supongo que es la imagen...
  14.    
  15.     move_uploaded_file($archivotemporal, $ruta."/".$archivo); //Subo la imagen
  16.     $ruta = $ruta."/".$archivo; //Me quedo con la ruta completa
  17.    
  18.     $con=mysql_connect($mysql_host, $mysql_user, $mysql_password); //Me conecto
  19.     mysql_select_db($mysql_database, $con); //Sigo conectando con la base de datos
  20.     mysql_query("INSERT INTO posts(usuario, post, nombre, imagen) VALUES('".$usuario."','".$post."','".$nombre."','".$ruta."')"); //Lo subo todo al servidor
  21.     header("Location: index.php"); //Y vuelve al inicio.
  22.     }

Lo que quiero, es implementar la seguridad que ha dicho mi amigo en el código, ¿me podrían ayudar? Muchísimas gracias, como pueden comprobar tampoco sé para que sirven las lineas de:

Código PHP:
Ver original
  1. $archivotemporal = $_FILES['imagen']['tmp_name']; //Esto no sé para que es, si me lo podéis explicar me lo decís xddd
  2.     $archivo = $_FILES['imagen']['name']; //Esto tampoco, supongo que es la imagen...

Si me podéis ayudar si no es mucha molestia para tan solo una breve descripción os lo agradecería; el manual de PHP no lo suelo entender...