Foros del Web » Programando para Internet » PHP »

Evitar ingreso de javascript

Estas en el tema de Evitar ingreso de javascript en el foro de PHP en Foros del Web. Hola a todos.....a los tiempos que vuelvo a este super foro.... Tengo una duda. Como puedo evitar que personas mal intencionadas ingresen código javascript (donde ...
  #1 (permalink)  
Antiguo 30/03/2006, 09:15
 
Fecha de Ingreso: febrero-2004
Ubicación: Guayaquil
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 0
Evitar ingreso de javascript

Hola a todos.....a los tiempos que vuelvo a este super foro....

Tengo una duda.
Como puedo evitar que personas mal intencionadas ingresen código javascript (donde ponen alerts, imágenes, etc) en mi sitio web.
Esto lo están haciendo en la sección del guestbook, lo cual resulta incómodo, ya que se levantan mensajes cuando ingresan los visitantes.

Gracias por la ayuda que me den.

Saludos
  #2 (permalink)  
Antiguo 30/03/2006, 09:30
Avatar de icebeam  
Fecha de Ingreso: marzo-2006
Mensajes: 27
Antigüedad: 11 años, 9 meses
Puntos: 0
Para ese caso específico, en la página donde procesas lo tecleado (supongo que lo guardas en una bd) cambia las coincidencias de <script, <td, <img etc por otra cosa (puedes usar la funcion str_replace de php). Saludos.
  #3 (permalink)  
Antiguo 30/03/2006, 09:38
Avatar de Vaalegk  
Fecha de Ingreso: abril-2005
Mensajes: 154
Antigüedad: 12 años, 8 meses
Puntos: 2
puedes usar tambien
http://www.php.net/strip_tags
  #4 (permalink)  
Antiguo 30/03/2006, 09:47
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
Yo te recomendaria que uses la función htmlentities(), que convierte todos los caracteres a su entidad HTML equivalente. Es decir la llamada a, por ejemplo, htmlentities("<script>") nos dara como resultado el string "&lt;script&gt;".
Saludos.
__________________
¿Se me entiende la letra?
  #5 (permalink)  
Antiguo 30/03/2006, 09:57
 
Fecha de Ingreso: febrero-2004
Ubicación: Guayaquil
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 0
Muchas gracias por sus respuestas, son muy acertadas....

Pero talvez no conocen el código (js) que evite de entrada (desde que se envía la acción del form), y no usando funciones que solo modifican lo ingresado, ya que al final de cuentas estas líneas de código mal intencionadas ingresarán a la BD, y es eso lo que deseo evitar.

Gracias nuevamente.
  #6 (permalink)  
Antiguo 30/03/2006, 10:10
Avatar de icebeam  
Fecha de Ingreso: marzo-2006
Mensajes: 27
Antigüedad: 11 años, 9 meses
Puntos: 0
Todas las funciones que te hemos dado sirven para modificar el código mal intencionado antes de que ingrese a la BD. Si, por ejemplo, usas la funcion que te di str_replace sobre la misma cadena donde guardas lo ingresado (antes de meterlo a la BD), tu cadena se guardará modificada y sin código malintencionado.

Como bien mencionas, hay código javascript para que lo ingresado sea validado antes de que se procese la info. Usarías el evento onSubmit y validas la cadena, solo que no sé como hacerlo con una función ahorita, me pongo a investigar y te digo si lo encuentro.

Saludos
  #7 (permalink)  
Antiguo 30/03/2006, 10:23
 
Fecha de Ingreso: febrero-2004
Ubicación: Guayaquil
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 0
gracias por tu ayuda icebeam
  #8 (permalink)  
Antiguo 30/03/2006, 10:26
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
Si no querés guardar código malintencionado en tu base de datos, no te recomiendo la opción de utilizar una funcion JavaScript. Esa solución "del lado del cliente" es fácil de burlar para una atacante. Lo que deberías hacer es, en la página donde recibes los datos y los almacenas en la base de datos, verificar que lo que recibiste no es código malicioso antes de guardarlo. Como ésta es una solución "del lado del servidor" no es posible que el atacante burle la verificación.
Saludos.
__________________
¿Se me entiende la letra?
  #9 (permalink)  
Antiguo 30/03/2006, 10:37
Avatar de icebeam  
Fecha de Ingreso: marzo-2006
Mensajes: 27
Antigüedad: 11 años, 9 meses
Puntos: 0
Cita:
Si no querés guardar código malintencionado en tu base de datos, no te recomiendo la opción de utilizar una funcion JavaScript. Esa solución "del lado del cliente" es fácil de burlar para una atacante. Lo que deberías hacer es, en la página donde recibes los datos y los almacenas en la base de datos, verificar que lo que recibiste no es código malicioso antes de guardarlo. Como ésta es una solución "del lado del servidor" no es posible que el atacante burle la verificación.
Saludos.
Es cierto, olvidaba ese detalle tan importante. Utiliza una función de php que procese la info antes de guardarla en la BD como te hemos dicho, jeje.

Saludos
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 16:48.