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:
<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>
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>^, : ; ? ¿ $ % & 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.