Foros del Web » Programando para Internet » PHP »

Que utilizar para la seguridad de una pagina

Estas en el tema de Que utilizar para la seguridad de una pagina en el foro de PHP en Foros del Web. Hola tengo una pregunta: Estoy haciendo un sitio en php con mysql para el mantenimiento de reservas tiene un menu y tengo que ponerle un ...
  #1 (permalink)  
Antiguo 30/09/2007, 23:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 73
Antigüedad: 16 años, 7 meses
Puntos: 0
Que utilizar para la seguridad de una pagina

Hola tengo una pregunta:

Estoy haciendo un sitio en php con mysql para el mantenimiento de reservas tiene un menu y tengo que ponerle un login para la seguridad.

Mi pregunta es la siguiente el sitio solo va a tener 2 usuarios y tienen derecho a todo el mantenimiento del sitio, pero como puedo mantener la seguridad de todo el sitio ya que en algunas páginas va a estar información que se inserta de los clientes.

He estado leyendo sobre las sessiones no sé si en este caso seria útil implementarla?????

Alguna recomendación de seguridad que se pueda seguir para tomarla en cuenta para implemantarla me seria de gran ayuda!!
  #2 (permalink)  
Antiguo 01/10/2007, 02:53
 
Fecha de Ingreso: octubre-2007
Ubicación: agua dulce, veracruz
Mensajes: 22
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Que utilizar para la seguridad de una pagina

en este caso si quedaria bien usar sessiones.
yo te recomendaria que uses sessiones para alojar la id del administrador y el password del adminsitrador (encriptado)
y tener unas cookies con esos mismos valores.

hacer una funcion que cheque por la id, dle usuario, haga un query a la base de datos y compare el password alojado en la session cone l password alopjado en la base de datos., si la informacion coincide, checar si ese usuario es adminsitrador, ejemplo tener un campo en la tabla usuarios llamado "nivel" donde 1 sea admistrador y 0 sea usaurio nromal. si resulta ser admisnitrador que el script continue, si no es admistrador, avisar que es area restringida y dar un exit; (para que se detenga el parseo del script)

el password en si, te recomiendo que este encriptado en MD5, junto con una salt
con salt me refieor a uan string calculada aleatoriamente.

obiamente tuvieras que alokar en la abla de usarios un campo llamado password (con el password y la salt encriptada en md5) y otro campo con la salt para poder comparar los password cuando ingresen al panel

o si quoeires ahorrarte la parte de la salt, simplemente encrupta dos veces en md5 el password

tu codigo deve verse mas o menos asi:


Código PHP:
function admins()
    {
    
$quien=$_SESSION['id_usuario'];
    
$password=$_SESSION['passusuario'];
    
conectar_base_de_datos();
    
$usuario mysql_fetch_array(mysql_query("SELECT `id`, `password`, `nivel` FROM `usuarios` WHERE `id` = '".$quien."' LIMIT 0, 30"));

    
Mysql_close();
    
$password_real=$usuario['password'];
    if(
$password_real== $password AND $nivel == "1"//tomando que nivel 1 es admin
        
{
        
$autentico="1";
        }else{
    
    Echo 
"acceso restringido a adminsitradores"//advierte que el area es solo para admins
    
Exit;

        }
    }





function 
login($usuario$password)
    {

    Global 
$error_login1$error_login2;    
    
conectar_base_de_datos();
    
$usuario mysql_fetch_array(mysql_query("SELECT `id`, `password` FROM `usuario` WHERE `usuario` = '".$usuario."' LIMIT 0, 30"));
    
Mysql_close();
    
$id =$usuario['id'];

    if (empty(
$id)){

    
$error_login1="1";//el usuario no existe
    
}
    
    
    
$password=md5(md5($password));
 
    if (
$password== $usuario['password']) { 

            
$_SESSION['id_usuario'] = $usuario['id'];
            
$_SESSION['passusuario'] = $usuario['password'];
                        
    
header("Location: admin.php");
    
        
        }else{

            
$error_login2="2";//el password no es correcto. 
    
}    


/* $error_login1, $error_login2 son globals, para que puedan se rusadas fuera de la funcion, por si se desea avisar al usario el error exacto*/
   


    
}


function 
logout()

    {

    unset(
$_SESSION['id_usuario']);
    unset(
$_SESSION['passusuario']);
    
setcookie("id_usuario"$_SESSION['id_usuario'], time() - 1);
    
setcookie("passusuario"$_SESSION['passusuario'], time() - 1);
    
session_destroy();
    
header("Location: index.php");

    }


function 
set_cookie()
    {    
    if (isset(
$_SESSION['id_usuario']) && isset($_SESSION['passusuario']))
    {
        @
setcookie('id_usuario'$_SESSION['id_usuario'], time()+10800);
        @
setcookie('passusuario'$_SESSION['passusuario'], time()+10800);
    }
    }



function 
check_cookie()
    {
    if (isset(
$_COOKIE['id_usuario']) && isset($_COOKIE['passusuario']))
    {
        
$_SESSION['id_usuario'] = $_COOKIE['id_usuario'];
        
$_SESSION['passusuario'] = $_COOKIE['passusuario'];    
    }
    } 


si tienes formularios, donde los usuarios puedan postear cosas en la web, te aocnsejo que sues esta funcion, para desabilitar cualquier codigo que quieran injectar
Código PHP:
function anti_lammers($variable)
    {
        
$variable addslashes($variable);
        
$variable htmlspecialchars($variableENT_QUOTES);
        return (
$variable);
    } 
suponiendo que las funciones las guardas en un archivo llamdo funciones, tu admin.php deve verse asi:

Código PHP:
<?include("includes/funciones.php");
session_start();
set_cookie();
check_cookie();
admins();


echo
"panel de adminstracion...";


?>



-Kerberos^^
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 10:12.