Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/07/2012, 09:24
ivimendoza
 
Fecha de Ingreso: abril-2011
Mensajes: 85
Antigüedad: 13 años, 1 mes
Puntos: 5
Grave problema con Mysql y PHP: mysql_real_escape_string

Buenas tardes,

Veréis, hoy, haciendo una sesión de pruebas a un proyecto mío he detectado un grave error. En principio no encuentro la manera de explotarlo, pero de todas formas no debería ser así y necesito saber de qué manera se podría solventar, espero que me echéis una mano.

El problema es el siguiente. Tengo un formulario con un campo, txt_nombre. El caso es que lo guardo a una tabla MySql mientras lo filtro con mysql_real_escape_string. En principio lo filtra bien y lo guarda con comillas para evitar que se pueda hacer una SQL Injection a través de él. Hasta ahí todo bien. Para luego extirpar las comillas utilizo STRIPSLASHES. El problema no es que funcione mal...

El problema está en que si guardo por ejemplo este texto:

Cita:
Esto ' es una prueba ' con " comillas "
Me lo filtra y me lo guarda correctamente, y luego me lo muestra bien. PERO, si guardo por ejemplo esto:

Cita:
<script type = "text/javascript">window.alert('test')</script> Esto es una prueba
Me lo muestra. Es decir, me lo muestra todo, por lo que el javascript me lo muestra, junto al texto que le sigue. Mi pregunta es, de qué manera se podría extirpar el javascript? El problema está en que cuando leo el campo MySql me muestra el texto y el <script> no me lo muestra, puesto que el documento considera que es un script y debe ser ejecutado.

Muchas gracias.