Visualizza il link alla sezione di amministrazione o no?

2

Ho un sito di domande e risposte. Ho una sezione di amministrazione. Da quella sezione posso cancellare utenti, thread, risposte e modificare varie altre cose. Ho un codice semplice all'inizio della pagina di amministrazione:

   if(($session->protected_page_security()) == FALSE || 
    ($session->is_administrator() == FALSE)){
     $session->logout;
     redirect_to('../index.php');
    }

Una sessione di sessione ha i seguenti metodi ....

 public function protected_page_security() {
    if(!$this->confirm_session_is_valid() && !$this->check_login()){
  return false;
    } else {
  return true;
   }
 }


 public function confirm_session_is_valid() {
  $check_ip = true;
  $check_user_agent = true;
  $check_last_login = true;

if($check_ip && !$this->request_ip_matches_session()) {
  return false;
}
if($check_user_agent && !$this->request_user_agent_matches_session()) {
  return false;
}
if($check_last_login && !$this->last_login_is_recent()) {
  return false;
}
return true;
}



public function request_ip_matches_session() {
   if(!isset($this->ip) || !isset($_SERVER['REMOTE_ADDR'])) {
    return false;
  }
  if($this->ip === $_SERVER['REMOTE_ADDR']) {
    return true;
  } else {
    return false;
  }
}


 public function request_user_agent_matches_session() {

  if(!isset($_SESSION['user_agent']) || !isset($_SERVER['HTTP_USER_AGENT'])) {
    return false;
  }
  if($_SESSION['user_agent'] === $_SERVER['HTTP_USER_AGENT']) {
    return true;
  } else {
    return false;
  }
}


 public function last_login_is_recent() {
  $max_elapsed = 60 * 60 * 24; // 1 day
  // return false if value is not set
  if(!$this->last_login) {
  return false;
  }
   if(($this->last_login + $max_elapsed) >= time()) {
  return true;
  } else {
  return false;
  }
  }


public function is_administrator(){
            $administrator_ids = array("164");
            if(in_array($_SESSION['user_id'], $administrator_ids)){              
                return true;
              } else {       
                return false;
              }
            }

USER_ID="164" è un amministratore.

La mia domanda è questa:

Pensa che non sia saggio avere un link alla sezione di amministrazione del sito (anche se viene mostrato solo per me, quando effettuo l'accesso)? Se qualcuno può accedere a questa pagina, può far cadere l'intero database. È più saggio non avere alcun link e basta digitare l'indirizzo come url?

Mi scuso per la semplice domanda -

Immagino che sia possibile per qualcuno scoprire (hackerare) la struttura del file del sito e "vedere" che c'è una sezione di amministrazione, indipendentemente dal fatto che ci sia un link giusto, quindi forse la mia domanda è moote.

    
posta GhostRider 06.08.2014 - 18:12
fonte

1 risposta

2

Sebbene possa scoraggiare gli hacker molto dilettanti, il concetto di sicurezza da oscurità è raramente efficace nel fornire sicurezza effettiva.

Un approccio migliore sarebbe limitare la pagina di amministrazione a un IP (il tuo).

Inoltre, presumo che stiate usando wordpress o qualche altro sistema di gestione dei contenuti. I miei due migliori consigli per una maggiore sicurezza sarebbe mantenere il sistema aggiornato e mantenere una password master sicura.

    
risposta data 06.08.2014 - 22:37
fonte

Leggi altre domande sui tag