elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Hacer Administracion con PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Hacer Administracion con PHP  (Leído 4,925 veces)
dominioswww

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: Hacer Administracion con PHP
« Respuesta #10 en: 17 Noviembre 2006, 17:45 pm »

Hice una class esta bien? necesito q alguien me la cheque porfa

Código:
<?php
define("COOKIE_EXPIRE", 60*60*24*100); 
define("COOKIE_PATH", "/"); 
class AdminLogin
    {
 var $Admin;
 var $Password;
 var $Logeado;
 var $Tiempo;
 var $error;
 var $url;
 var $referrer;

   function AdminLogin(){
     $this->Tiempo = time();
     $this->iniciarSession();
   }



   function iniciarSession(){
     session_start(); //Iniciamos Sesiones
     $this->Logeado = $this->checkLogin();  //


 
      if(isset($_SESSION['url'])){
         $this->referrer = $_SESSION['url'];
      }else{
         $this->referrer = "/";
      }

      $this->url = $_SESSION['url'] = $_SERVER['PHP_SELF'];
   }


   function checkLogin(){
      if(isset($_COOKIE['cookadmin'])){
         $this->Admin = $_SESSION['manager'] = $_COOKIE['cookadmin'];
      }

      if(isset($_SESSION['manager'])){
           $cookie = explode(":", $_SESSION['manager']);
           $cookiea = $cookie[0];
           $cookiep = $cookie[1];
           $dadmin = "admin";
           $dpass = md5(pass);


            if($cookiea == $dadmin && $cookiep == $dpass){
        return true;
           }else{
       unset($_SESSION['manager']);
       setcookie("cookadmin", "", time()-COOKIE_EXPIRE, COOKIE_PATH);
       header("location: manager.php");
       return false;
       }
 
       }

    return false;
    }







   function login($admin, $pass, $cadmin, $cpass, $recordar){

     if($admin!==$cadmin){
   $error = "No puedes entrar a la Administración";

   return $error;
  }elseif($pass!==$cpass){
   $error = "No puedes entrar a la Administración";
   return $error;
  }
  //    $error = "accesopervitido";
 
  $pass = md5($pass);
  $this->Admin  = $_SESSION['manager'] = "$admin:$pass";
 
header("location: manager.php"); 
 
 

  if($recordar){
         setcookie("cookadmin", $this->Admin, time()+COOKIE_EXPIRE, COOKIE_PATH);

      }
      return $error;
   }


   function logout(){

      setcookie("cookadmin", "", time()-COOKIE_EXPIRE, COOKIE_PATH);
      unset($_SESSION['manager']);

     $this->Logeado = false;
     
     }





};


?>


Despues pues hago auth.php
Código:
<?php
include("admin.class.php");
$alogin = new AdminLogin;
?>

y este lo incluyo en mi archivo principal de includes donde he creado mis funciones y el include de la class de base de datos y otros archivos pues el mainfile.php

despues en mi admin.php pongo el form y pongo

Código:
$admin = $_POST['user'];
$pass = $_POST['pass'];
$pass = md5($pass);

$cadmin = useradmin();
$cpass = md5(passadmin());

      if(isset($_POST['sublogin'])){
$yo3 = $alogin->login($admin,$pass,$cadmin,$cpass,isset($_POST['remember']));
       }

t en mi mainfile agrego estas funciones

Código:
function es_admin()
{
global $db, $alogin;
$esadmin = $alogin->Logeado;
return $esadmin;
}

function useradmin()
{
global $db,  $alogin;
/Esto como ejemplo para poder llamar el nombre del admin desde una base de datos

$uadmin = "admin";
return $uadmin;
}
function passadmin()
{
global $db,  $alogin;
/Esto como ejemplo para poder llamar el pass desde una base de datos
$upass = "pass";
return $upass;
}

ahora modifique mi admin.class.php
Esto
Código:
           $dadmin = "admin";
           $dpass = md5(pass);

Por esto

Código:
           $dadmin = useradmin();
           $dpass = passadmin();

Para que en el checklogin pues tenga esos datos de la base de datos

luego en el admin.php tengo esto

Código:
if(es_admin()){
//PARTE DE ADMINISTRACION
}else{
//necesitas logearte
}


Y pues no se que tan seguro este mi script para el admin y para hacer admin.php?op=sección
y hacer que el switch llame a un include bastaria con poner
Código:
if(!es_admin()){
exit();
}

para que alguien q intente ver el archivo directamente no le muewstre algo


un saludo






« Última modificación: 17 Noviembre 2006, 18:27 pm por dominioswww » En línea

Dominios al mejor precio desde 2.00 USD solo en
http://dpanel.dominioswww.net
http://www.dominioswww.net
Morris
Ex-CoAdmin y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.964


Ver Perfil WWW
Re: Hacer Administracion con PHP
« Respuesta #11 en: 25 Noviembre 2006, 09:14 am »

No uses cookies. Las cookies se roban muy fácil con un XSS.
Usa mejor variables de sesión.


En línea

dominioswww

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: Hacer Administracion con PHP
« Respuesta #12 en: 25 Noviembre 2006, 19:51 pm »

Pero no esta seguro es Session y Cookie? o como entonces le hago si no quiero estar entrando y poniendo los datoscada vez q entro?
En línea

Dominios al mejor precio desde 2.00 USD solo en
http://dpanel.dominioswww.net
http://www.dominioswww.net
alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Hacer Administracion con PHP
« Respuesta #13 en: 25 Noviembre 2006, 21:35 pm »

Como Morris ya te dijo usa sesiones es mas
seguro , puesto que las cookies se quedan en el cliente en este caso tu explorador almacena las cookies :P y weno de alli como ya te dijo morris es facil robartelas
En cambio las variables session se guardan en forma fisica en el servidor .


En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
Morris
Ex-CoAdmin y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.964


Ver Perfil WWW
Re: Hacer Administracion con PHP
« Respuesta #14 en: 26 Noviembre 2006, 04:49 am »

XD si no quieres poner los datos pues no le pongas password XD
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines