Foros del Web » Programando para Internet » PHP »

busco sugerencias

Estas en el tema de busco sugerencias en el foro de PHP en Foros del Web. hola que tal tengo una pregunta que es algo simple para quien conosca del tema. tengo la siguiente fucion: Código PHP: preg_replace ( "/[^a-zA-Z0-9\sñÑáéíóúÁÉÍÓÚ]/" ,  ...
  #1 (permalink)  
Antiguo 06/01/2010, 21:29
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 1
De acuerdo busco sugerencias

hola que tal tengo una pregunta que es algo simple para quien conosca del tema.
tengo la siguiente fucion:
Código PHP:
preg_replace("/[^a-zA-Z0-9\sñÑáéíóúÁÉÍÓÚ]/"""$i); 
solo admito valores alfanumericos con acentos , esto es para prevenir la inyeccion SQL,
pero sinceramente me gustaria dejar al usuario ingresar caracteres tales como lo pueden ser ","(comas) "."(puntos) !,?,:,(,) entre otros mas...
y entonces hacer esto :
Código PHP:
preg_replace("/[\']/"""$i); 
para solo eliminar las comillas.
mi pregunta es que caracteres me recomiendan que prohiba para evitar una inyeccion sql ?

muchas gracias por su ayuda
  #2 (permalink)  
Antiguo 06/01/2010, 21:33
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 11 meses
Puntos: 21
Respuesta: busco sugerencias

PHP ya tiene muchas funciones para evitar esto, entre ellas estan:

addslashes();

htmlentities(); // No es exactamente para esto, pero de algo sirve.

mysql_real_escape_string(); //Talvez la mas aconsejada.
  #3 (permalink)  
Antiguo 06/01/2010, 21:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: busco sugerencias

mas que prohibir, se deben evitar o hasta escapar dichos caracteres...

estos son los mas importantes: \';-

la manera mas sencilla es esta:
Código PHP:
$foo addcslashes($foo"\\';-"); 
usar otras funciones sin saber lo que hacen exactamente es como tratar de matar un oso con una resortera, tanto que luego hacen cosas que no sabias que hacían y no querías que hicieran... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 06/01/2010, 21:53
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 11 meses
Puntos: 21
Respuesta: busco sugerencias

mysql_real_escape_string(); no hace practicamente lo mismo, pero de forma mas automatizada?

Cita:
mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.
  #5 (permalink)  
Antiguo 06/01/2010, 21:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: busco sugerencias

@pateketrueke, ¿eso es una nueva función? addcslashes
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 06/01/2010, 21:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: busco sugerencias

Cita:
Iniciado por abimaelrc Ver Mensaje
@pateketrueke, ¿eso es una nueva función? addcslashes
no, para nada...

significa algo así como "add custom slashes" (según yo)
http://php.net/addcslashes

¡ahora yo te tome por sorpresa!! ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 06/01/2010, 21:55
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 11 meses
Puntos: 21
Respuesta: busco sugerencias

Yo tenia la misma duda e investigué...

addcslashes();


Resulta que si es una funcion....
  #8 (permalink)  
Antiguo 06/01/2010, 21:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: busco sugerencias

Cita:
Iniciado por bioxido Ver Mensaje
mysql_real_escape_string(); no hace practicamente lo mismo, pero de forma mas automatizada?
claro, tienes toda la razón... a excepción de que solo sirve con la extensión de MySQL, igualmente cada extensión RDBMS en PHP tiene sus propias funciones, pero usar addcslashes() es la forma mas "genérica" con la que me he topado... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 06/01/2010, 21:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: busco sugerencias

Pues siempre se aprende algo, y mira que la busque rapido antes y no vi nada por encima, pero siempre se aprende algo jajaja

Edito:
Si me tomaste por sorpresa.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: sugerencias
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 21:48.