Foros del Web » Programando para Internet » PHP »

Grave problema con Mysql y PHP: mysql_real_escape_string

Estas en el tema de Grave problema con Mysql y PHP: mysql_real_escape_string en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/07/2012, 09:24
 
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.
  #2 (permalink)  
Antiguo 31/07/2012, 09:36
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Grave problema con Mysql y PHP: mysql_real_escape_string

usa strip_tags y retiras etiquetas ademas de htmlentities o htmlspecialchars antes de mandarla a la bd y despues para mostrar , si esque no deseas permitir el uso de nunguna etiqueta

pruebalo y me cuentas que resultado te da ese txt de javascript

Etiquetas: formulario, mysql, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:16.