Foros del Web » Programando para Internet » PHP »

Prevenir SQL Injection

Estas en el tema de Prevenir SQL Injection en el foro de PHP en Foros del Web. Buenas noches. Es bastante conocido que es necesario utilizar mysql_real_scape_string() para hacer un correcto filtrado de caracteres a la hora de prevenir SQL Injection. Por ...
  #1 (permalink)  
Antiguo 20/04/2008, 23:18
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Prevenir SQL Injection

Buenas noches.

Es bastante conocido que es necesario utilizar mysql_real_scape_string() para hacer un correcto filtrado de caracteres a la hora de prevenir SQL Injection.

Por unos problemas que tuve anteriormente con formularios en los que se necesitaba utilizar comilla simple para especificar la unidad de pulgadas. agregué la función escape() de JavaScript cuando se enviaba el formulario lo cual me coniverte los caracteres con el URL Encode. Se que la validación en el cliente no me protege por lo cual tambien tengo que hacer validación en el servidor, pero la pregunta es que cunado hago el URL encode, los string quedan con los respectivos %20 y demas caracteres convertidos a url que finalmente los inserto en la base de datos. Es válido que en la base de datos me estén quedando los datos en URL encode??
Existe una mejor práctica??? que relación hay con las funciones htmlentities?
Cuando voy a imprimir los datos en la página utilizo la función de JavaScript unescape que funciona correctamente como lo necesito.

Mil gracias
__________________
Desdichado quien duerme en la mañana
  #2 (permalink)  
Antiguo 21/04/2008, 02:39
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Prevenir SQL Injection

Mmm, es cierto que hacer el escape con javascript tiene poco sentido. No acabo de entender por qué tuviste que utilizarlo. Quizás, con un ejemplo, sería más fácil ayudarte.

Un saludo.
  #3 (permalink)  
Antiguo 21/04/2008, 03:05
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Prevenir SQL Injection

Yo en principio lo que utilizo para evitar eso, es primero javascript (pero como se puede desahbilitar) también utilizo funciones propias de php.

Aquí te dejo un enlace a un pdf, se titula PHP Seguro:

http://www.soulblack.com.ar/repo/papers/phpseguro.pdf

Espero que te sirva.
  #4 (permalink)  
Antiguo 21/04/2008, 08:51
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Re: Prevenir SQL Injection

Cita:
Iniciado por jerkan Ver Mensaje
Mmm, es cierto que hacer el escape con javascript tiene poco sentido. No acabo de entender por qué tuviste que utilizarlo. Quizás, con un ejemplo, sería más fácil ayudarte.

Un saludo.
Jerkan lo que pasa es que en un formulario se escriben datos que contienen comillas. Posteriormente tengo que mostrar el formulario con esos datos rellenándolo con JavaScript, ocasionando que las comillas de los datos me interrumpan las funciones javascript que imprimen. Es por esto que tengo que escapar con javascript
__________________
Desdichado quien duerme en la mañana
  #5 (permalink)  
Antiguo 22/04/2008, 02:24
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Prevenir SQL Injection

Que te escriban cadenas con comillas no es ningún problema. Por otro lado, no entiendo por qué tienes que rellenar el formulario con Javascript.

Yo aplicaría la función htmlspecialchars a los campos del formulario (una vez realizado el post del formulario). Esto convertiría las comillas en sus equivalentes html de manera que se verán igual pero no afectaran a tu código.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:19.