Foros del Web » Programando para Internet » PHP »

Seguridad

Estas en el tema de Seguridad en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro. Tengo un par de dudas acerca de la seguridad en php. Necesito saber si en un login afecta el ...
  #1 (permalink)  
Antiguo 01/05/2009, 16:19
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 15 años
Puntos: 3
Seguridad

Hola, soy nuevo en el foro. Tengo un par de dudas acerca de la seguridad en php.
Necesito saber si en un login afecta el ingreso de caracteres como: "*,-,/, etc".
Uso la siguiente función por lo gral:
$cadena=str_replace("$"," ", $cadena);
$cadena=str_replace("'"," ", $cadena);
$cadena=str_replace(";"," ", $cadena);
¿es suficiente con ésto? Saludos!.
  #2 (permalink)  
Antiguo 01/05/2009, 16:32
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Seguridad

todo simbolo sobre todo lo que te ayuda a poner javascript o a realizar consultas sql es peligroso, de todas formas te recomiendo que pases por php.net y revises funciones como strip_tags, htmlentities, mysql_real_escape_string
esas teserviran para dar el puntapie inicial

saludos y bienvenido
  #3 (permalink)  
Antiguo 01/05/2009, 19:09
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Seguridad

mmm como dice Adell ya hay funciones que te pueden ayudar a protegerte de ataques, entonces como que tu función no tiene mayor trascendencia para lo que necesitas.

Revisa el manual de php.
suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 01/05/2009, 19:38
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Seguridad

Me permito diferir con esto:
Cita:
todo simbolo sobre todo lo que te ayuda a poner javascript o a realizar consultas sql es peligroso,
Ningún símbolo es peligroso si es tratado correctamente. Personalmente prefiero no restringir el uso de símbolos en contraseñas para poder brindar al usuario la posibilidad de crear combinaciones más seguras.
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 01/05/2009, 23:00
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 15 años
Puntos: 3
Respuesta: Seguridad

Cita:
Iniciado por buzu Ver Mensaje
Me permito diferir con esto:


Ningún símbolo es peligroso si es tratado correctamente. Personalmente prefiero no restringir el uso de símbolos en contraseñas para poder brindar al usuario la posibilidad de crear combinaciones más seguras.
claro, lo preguntaba por ésta clase de inyecciones:
' OR ''='
* usuario: admin AND /* password: */ ''='
* usuario: ' OR 1=1 //

por éso necesito eliminar ciertos caracteres; las comillas básicamente y el '$'.
le puse esta función:

function login($cadena){
$cadena=htmlentities(stripslashes(trim(($cadena))) );
$cadena=strip_tags($cadena);
$cadena=str_replace("$","",$cadena);
$cadena=str_replace("'","",$cadena);
$cadena=str_replace(";","",$cadena);
$cadena=str_replace("*","",$cadena);
return $cadena;
}

y cuando envío las variables en sql le paso el mysql_real_escape_string().

está bien así?
  #6 (permalink)  
Antiguo 01/05/2009, 23:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Seguridad

No necesitas usar esa función que propones si usas mysql_real_escape_string(), ya que con esa función se escapan (no se borran) los caracteres especiales de modo que no pueden inyectar código SQL.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 01/05/2009, 23:13
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 15 años
Puntos: 3
Respuesta: Seguridad

Cita:
Iniciado por David el Grande Ver Mensaje
No necesitas usar esa función que propones si usas mysql_real_escape_string(), ya que con esa función se escapan (no se borran) los caracteres especiales de modo que no pueden inyectar código SQL.
si uso md5 tampoco?
  #8 (permalink)  
Antiguo 02/05/2009, 09:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Seguridad

Si usas md5 no necesitas usar ni mysql_real_escape_string() ni la función que mencionas
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 02/05/2009, 09:30
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Seguridad

Q tal mira esta funcion muy buena (alguien del foro la hizo no me acuerdo quien )

function validacion_completa($variable)
{
$variable=strip_tags($variable);
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
$variable = str_replace($nopermitidos,"", $variable);
return $variable;


}
  #10 (permalink)  
Antiguo 02/05/2009, 11:18
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Seguridad

Si estás usando md5 no necesitas eliminar esos caracteres por que al final no aparecerán en el resultado final. Como te dije desde un principio, ningún caracter es peligroso si es manejado de la forma correcta.
__________________
twitter: @imbuzu
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:41.