Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Seguridad sistema autentificacion usuario. (http://www.forosdelweb.com/f18/seguridad-sistema-autentificacion-usuario-776870/)

mariomon17 09/02/2010 09:25

Seguridad sistema autentificacion usuario.
 
Hola a todos, he creado un sisitema de autentificacion de usuarios y queria saber que opinan de la seguridad que ofrece...

Pagina index.php
Envio por POST la contraseña a control.php

Control.php
Código PHP:
Ver original
  1. <?php
  2. switch (md5($_POST["pass"])){
  3.    case "cbfad6f62b7588596261545e865cd980":
  4.      session_start();
  5.      $_SESSION["nom"]="sara";
  6.      header("Location: panel.php");
  7.    break;
  8.    case "254289217f69e7288185528730643f65":
  9.      session_start();
  10.      $_SESSION["nom"]="mario";
  11.      header("Location: panel.php");
  12.    break;
  13.    default:
  14.      header("Location: index.php?error=yes");
  15. }
  16. ?>

Cita:

La pagina solo va a tener dos usuarios (mario y sara) por eso de session nom
Panel.php
Antes del codigo esta incrustado esto:
Código PHP:
Ver original
  1. <?php
  2. if (($_SESSION["nom"] != "sara") && ($_SESSION["nom"] != "mario")){
  3.   header("Location: index.php?zona=yes");
  4.   exit();
  5. }
  6. ?>
Cita:

Y luego en la pagina exit.php (a la q se accede desde un boton "Salir" en panel.php
Exit.php
Código PHP:
Ver original
  1. <?php
  2. header("Location: index.php");
  3. ?>

-------------------------------------------------------------------
Gracias a todos...

Hidek1 09/02/2010 09:42

Respuesta: Seguridad sistema autentificacion usuario.
 
esta bien... si no usas sql para los usuarios no debes preocuparte por las injection ni nada de eso asi que con eso deberia bastar

Triby 09/02/2010 13:14

Respuesta: Seguridad sistema autentificacion usuario.
 
Solo agregaria un poco mas de seguridad comparando nombre y clave, es decir:

Código PHP:
Ver original
  1. if($_POST['nombre'] == 'mario' && md5($contrase&#241;a) = 'md5-de-contraseña-de-mario') {
  2.      // Aqui inicias la sesion de mario y rediriges
  3. } else if( verificacion de datos de sara) {
  4.       // Aqui inicias la sesion de sara y rediriges
  5. } else {
  6.       // Aqui rediriges a pagina de error
  7. }

morior 09/02/2010 13:43

Respuesta: Seguridad sistema autentificacion usuario.
 
Eso te funciona? lo has probado?? lo digo porque el session_start(); no lo tienes al principio de todo. Sólo un comentario.

david_M_G 09/02/2010 14:51

Respuesta: Seguridad sistema autentificacion usuario.
 
¿Y para qué quieres usar MD5 en este caso? Ahí no te hace nada. La contraseña la estás pasando vía "POST" tal cual es (no cifrada), que es donde está el riesgo.

Quiero decir que el riesgo está en el viaje de esa contraseña, mientras se tramita la información, o el lugar donde se almacena (como podría ser la base de datos). En tu caso, la estás cifrando y comparando en el mismo lugar, que por cierto es ya seguro (nadie accederá al contenido del .php)

Es lo mismo:
Código:

if ($contra == 12345)
Que:
Código:

if(cifrar($contra) == cifrar(12345))
Vamos, que no es que sea un error, pero no sirve absolutamente de nada por si lo pensabas. (Y si me equivoco que me corrija alguien)
La MD5 viene bien tenerla cifrada por ejemplo si la almacenas en SESSION o en una COOKIE, que son datos a los que el usuario puede acceder.

Suerte :adios:

Hidek1 09/02/2010 14:57

Respuesta: Seguridad sistema autentificacion usuario.
 
por eso mismo yo tambien dije que daba lo mismo si no interactuaba con sql =)

mariomon17 09/02/2010 17:33

Respuesta: Seguridad sistema autentificacion usuario.
 
Cita:

Iniciado por Triby (Mensaje 3274867)
Solo agregaria un poco mas de seguridad comparando nombre y clave, es decir:

Código PHP:
Ver original
  1. if($_POST['nombre'] == 'mario' && md5($contraseña) = 'md5-de-contraseña-de-mario') {
  2.       // Aqui inicias la sesion de mario y rediriges
  3. } else if( verificacion de datos de sara) {
  4.       // Aqui inicias la sesion de sara y rediriges
  5. } else {
  6.       // Aqui rediriges a pagina de error
  7. }

De momento solo quiero que sea una contraseña, sin nombres de usuarios ni nada.
Cita:

Iniciado por morior (Mensaje 3274925)
Eso te funciona? lo has probado?? lo digo porque el session_start(); no lo tienes al principio de todo. Sólo un comentario.

Si, me funciona perfecto. session_start lo incluyo al principio de todas las paginas.

------------------------------------
Muchas gracias a todos.
Proximamente (si amplio este sistema) los usuarios vendras de una base de datos...


La zona horaria es GMT -6. Ahora son las 11:40.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.