Foros del Web » Programando para Internet » PHP »

Funcion antiinjection y seguridad.

Estas en el tema de Funcion antiinjection y seguridad. en el foro de PHP en Foros del Web. Buenas, tengo una funcion para evitar el sql injection que aplico en los valores que introduce el usuario en formularios y demás. Es esta: Código ...
  #1 (permalink)  
Antiguo 21/04/2008, 16:33
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Funcion antiinjection y seguridad.

Buenas, tengo una funcion para evitar el sql injection que aplico en los valores que introduce el usuario en formularios y demás.

Es esta:

Código PHP:
function sql_quote($valor)
{   if(
get_magic_quotes_gpc())
    {
$valor stripslashes($valor);}
    
//comprueba si existe la función 
    
if(function_exists("mysql_real_escape_string"))
    {
$valor mysql_real_escape_string$valor );}
    
//para las versiones < 4.3.0 de php usamos addslashes 
    
else {$valor addslashes($valor);}
    return 
$valor;} 

Antes de nada me gustaria saber si es válida o si habria que usar alguna otra más completa... nunca me quedo tranquilo con la seguridad.

Entonces, tengo un panel de comentarios en los que los usuarios pueden dejar comentarios. Pero claro, está la cosa de los simbolos raros y demás... ahora aplico la funcion sql_quote al comentario, pero no me acepta por ejemplo el signo "¿".

Mi duda es como hacer que esto sea funcional pero que el usuario pueda escribir con normalidad y dejar mensajes comunes sin tener que modificarle el mensaje siempre que este sea correcto...

Un saludo.
  #2 (permalink)  
Antiguo 21/04/2008, 22:34
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Funcion antiinjection y seguridad.

deberias de utilizar una funcion de reemplazo por ejemplo

preg_replace('/[a-zA-Z0-9]/','',$texto);

eso reemplazaria a todo aquel caracter distinto del abecedario en minuscula y mayuscula y los numeros del 0 al 9 por nada

ejemplo

la canción 35 de Raul Nuñez

seria transformado en

la cancin 35 de Raul Nuez
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 22/04/2008, 01:09
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Funcion antiinjection y seguridad.

"que el usuario pueda escribir con normalidad y dejar mensajes comunes sin tener que modificarle el mensaje siempre que este sea correcto"

No creo que sea buena idea suprimir las ñ's, acentos y demás cuando el usuario escribe S:
  #4 (permalink)  
Antiguo 22/04/2008, 12:50
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Funcion antiinjection y seguridad.

¿¿Nadie?? :(
  #5 (permalink)  
Antiguo 22/04/2008, 13:32
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Funcion antiinjection y seguridad.

Me imagino entonces q todo lo tendrás q hacer manual, como te dijo emiliodeg, porq de una forma u otra las funciones te van a quitar caracteres q quizás desees conservar.
saludos
  #6 (permalink)  
Antiguo 22/04/2008, 15:42
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Funcion antiinjection y seguridad.

La función que mostraste arriba puede funcionar.Escaparía los caracteres que puedan usarse con sql inyection con \

Saludos
  #7 (permalink)  
Antiguo 24/04/2008, 07:40
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Funcion antiinjection y seguridad.

Pero entonces si un usuario introduce interrogantes o acentos no se añadirian al mensaje :S

Tengo la duda de como evitar el sql injection pero que el usuario pueda escribir con total normalidad.
  #8 (permalink)  
Antiguo 24/04/2008, 08:13
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Funcion antiinjection y seguridad.

http://es.php.net/manual/es/function...ape-string.php
  #9 (permalink)  
Antiguo 24/04/2008, 08:20
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Re: Funcion antiinjection y seguridad.

no seria mejor utilizar la funcion htmlspecialchars($variable)?
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 05:17.