Autenticazione con If / Else

0

Per mantenere sicuro il "Pannello di amministrazione" per coloro che hanno effettuato l'accesso, per la mia applicazione Web, è consigliabile utilizzare una dichiarazione If / Else?

if($_SESSION['logged_in'] == true) {
   include '../styles/templates/admincp/header.php';
   include '../styles/templates/admincp/content.php';
   include '../styles/templates/admincp/footer.php';
}
else {
   include '../styles/templates/login.php';
}

È così che i "professionisti" (come i creatori di CMS, ecc.) fanno questo stile di autenticazione? O c'è un percorso e un metodo completamente migliori per l'istruzione If / Else per autenticare le pagine per gli utenti che hanno effettuato l'accesso?

    
posta 29.03.2014 - 05:07
fonte

2 risposte

2

Ad un certo punto, tutta l'autenticazione arriva a un'istruzione if.

  • Se questo utente ha effettuato l'accesso ...
  • Se questo utente ha i privilegi di amministratore ...
  • Se questo utente ha privilegi di amministratore ...
  • Se questo utente è connesso da un provider OAuth ...

Ci sono molti metodi per includere (o escludere) le funzioni privilegiate:

  • Nascondi le cose a cui l'utente non è autorizzato a vedere
  • Non includere un modulo o un controllo
  • Reindirizza l'utente a una pagina a cui hanno accesso

Il codice di esempio che hai pubblicato funzionerà perfettamente.

    
risposta data 29.03.2014 - 05:53
fonte
1

Si arriva a una dichiarazione if finalmente da qualche parte nel codice. Personalmente ho qualcosa di più simile a questo:

if ( true === (bool) $_SESSION['user']['login'] && 
     0 < (int) $_SESSION['user']['id'] && 
     time() <= ((int) $_SESSION['user']['last-activity'] + 20 * 60) &&
     $_SERVER['REMOTE_ADDR'] === (string) $_SESSION['user']['ip']
     ) {

    /* Update the last user activity time */
    $_SESSION['user']['last-activity'] = time();

    /* Check the permissions, etc. */

    /* Render dashboard */

} else {

    /* Redirect to Login */
    header( 'Location: ' + $cfg->url + '/login/' );
}
    
risposta data 29.03.2014 - 10:44
fonte

Leggi altre domande sui tag