Foros del Web » Programando para Internet » PHP »

Seguridad en formulario

Estas en el tema de Seguridad en formulario en el foro de PHP en Foros del Web. Hola a tod@s Estoy haciendo una aplicación para la oficina donde trabajo, que utiliza un formulario de login. Es una aplicación muy básica para uso ...
  #1 (permalink)  
Antiguo 08/03/2012, 06:26
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Seguridad en formulario

Hola a tod@s
Estoy haciendo una aplicación para la oficina donde trabajo, que utiliza un formulario de login. Es una aplicación muy básica para uso interno que no requiere especiales medidas de seguridad. De todas formas, me gustaría que el formulario de login cumpliera su función. El usuario y pass es único y se lo doy a todo el que yo quiero que pueda acceder a la aplicación. Para validarlo simplemente pongo en un php:

if ($_POST["nombre"] != "admin" || !$_POST["pass"] != "1234"){
header("Location: login.html");
}

Querría saber si esta forma de validar es muy insegura y alguna persona con conocimientos básicos podría reventarla. Ya digo que no estoy buscando nada muy sofisticado en cuanto a seguridad. Ya sé que alguien con los conocimientos suficientes te puede hackear una aplicación, hagas lo que hagas. Simplemente no quiero que sólo con poner cosas como 1=1 en el pass o cosas parecidas que he visto por internet se pueda burlar la seguridad. No utilizo base de datos para guardar nada, como he dicho, el usu y pass es único.

Un saludo.
  #2 (permalink)  
Antiguo 08/03/2012, 06:40
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Seguridad en formulario

poner el nombre de usuario y el pass en el mismo archivo de código no es una buena idea sobre todo si , como dices, es una aplicacion de uso interno donde probablemente se tenga acceso fácil a los archivos del servidor.

al menos para el pass , si no quieres usar una BD , te recomiendo usar un fichero y codificar la contraseña usando la función md5() ó sha1(), haz que se fichero sea oculto o que solo pueda borrarse con los permisos del administrador y aunque pueda accederse al mismo, la contraseña estaría codificada y seria indescifrable.

en cuanto a la comprobación del nombre , yo utilizaría el operador !== que es mas estricto. sólo por precaución.

como no se exactamente como de "delicada" es la informacion de la aplicacion no puedo recomendarte nada mas, ya que si la aplicacion no es demasiado delicada pues tendras que preocuparte lo justo por la seguridad.
  #3 (permalink)  
Antiguo 08/03/2012, 11:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Seguridad en formulario

Gracias bray. Me han gustado todas las propuestas que me has dado. Creo que con eso será más que suficiente.
Más que nada mi duda era si con un caso como el mío podría haber problemas de inyección de código o eso sólo es para el caso de que se use base de datos. No lo tenía claro.

Un saludo.
  #4 (permalink)  
Antiguo 08/03/2012, 15:06
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Seguridad en formulario

Hola, la verdad es que no se como funcionaria la inyección de código ahí, pero puedes utilizar una expresión regular , si tu único usuario es el admin , el parámetro nombre solo aceptara entradas que contengan valores en letras minúsculas si no, ni se molestara en hacer la validacion. Esto impedira que se inserten comillas y otro tipo de caracteres que pretendan engañar a tu script un ejemplo

Código PHP:
Ver original
  1. if(preg_match ('^[a-z]{5}$',$_POST['nombre')){
  2.  
  3.  
  4.     if ($_POST["nombre"] != "admin" || !$_POST["pass"] != "1234"){
  5.        header("Location: login.html");
  6.     }
  7. }
el primer if determina que si el contenido de "nombre" es algo distinto a letras minusculas y no tiene 5 caracteres exactos, es que no es valido. si el contenido es valido, entonces se comprobara si es correcto el nombre de usuario y la contraseña.

Otro tema es que el archivo de contraseña no pueda ser modificado por nadie ya que si eliminan la contraseña del archivo, entonces valdria con dejar el espacio de contraseña en blanco para validar.

Etiquetas: formulario, html, seguridad, usuarios
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 12:40.