Ver Mensaje Individual
  #86 (permalink)  
Antiguo 17/05/2010, 02:15
Avatar de Flow89
Flow89
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Seguridad en PHP [Importante];

Bueno, he aplicado seguridad al php que utilizo para crear las noticias.

Este es el codigo:

Código PHP:
<?
    
//incluimos el archivo de conexion
    
include ("conex.php");

      
//recibimos las variables enviadas por el formulario
      
$titulo=$_POST[titulo];
      
$autor=$_POST[autor];
      
$categoria=$_POST[categoria];
      
$articulo=$_POST[articulo];
      
$now time();

//Limpiamos las variables
$tituloL htmlentities($titulo);
$autorL htmlentities($autor);
$categoriaL htmlentities($categoria);
$articuloL htmlentities($articulo);
    

      
//insertamos los registros almacenados en las variables
      
mysql_query("insert into noticias(autor,titulo,categoria,fecha,noticia) 
      values('$autorL','$tituloL','$categoriaL','$now','$articuloL')"
,$connect); 
      
header("location: ../index.php");
?>

Y me lo guarda en la base de datos de esta manera:
Código:
&lt;p&gt;&lt;strong&gt;asdasdasd&lt;/
strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;
sadasdasdasdasdasd&lt;br /&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;asd&lt;
/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;asdasd&lt;/
li&gt;&lt;/ul&gt;&lt;p&gt;^, : ; ? &iquest; $ % 
&amp;amp; asdasd m&aacute;s&lt;/p&gt;
Es decir, remplazando etiquetas y caracteres, que es lo que buscamos para evitar ataques, no?

El caso es que luego, al mostrarlo en el index.php me sale así:

Código:
<p><strong>asdasdasd</strong></p>
<p><em>sadasdasdasdasdasd<br /><br />
</em></p><ol><li>asd</li></ol><ul><li>asdasd</li>
</ul><p>^, : ; ? ¿ $ % &amp; asdasd más</p>
Pero no me procesa las etiquetas... sino que me salen escritas.

He echo algo mal, debo utilizar un mysql_real_escape_String en vez de htmlentities.. o que es lo que tengo que hacer exactamente? :S


Un saludo.