Login e sessioni

Salve...

Ho notato parecchi script PHP che permettono il login ma li ritengo parecchio vulnerabili e vorrei capire se è davvero così...

Ad esempio in questo script... Quando viene effettuato il login succede questo:

      
<?php
   
$query = "SELECT * from admin WHERE user = '$user' AND pass = '$pass'";
    $risultato = mysql_query($query);
    $num_righe = mysql_num_rows($risultato);
    if($num_righe)
    {
      $resrow = mysql_fetch_row($risultato);
       //  l'utente e' stato riconosciuto
      session_cache_limiter("private_no_expire");
      session_start();
      $_SESSION['login'] = "yes";
      $_SESSION["user"] = $adm_user;
      $_SESSION["id"] = $resrow[0];
      $_SESSION["mail"] = $resrow[3];
      $_SESSION["nome"] = $resrow[4];
      $_SESSION["cognome"] = $resrow[5];
      $_SESSION["type"] = $resrow[6];

      print "Login eseguito";
         }
?>

Successivamente nelle varie pagine dello script, per controllare che il login è stato eseguito, si passa a questo codice:

<?php

session_start();
if ($_SESSION['login'] != "yes") 
{
      print"Login non eseguito";
                exit;

}
?>

In questo modo il login non è vulnerabile?? Basta creare uno script che faccia "$_SESSION['adm_login'] == "yes" " e ritornare in questa pagina così si accede all'area admin senza eseguire il login...

Spero di essermi spiegato... Mi sbaglio o ho ragione?

Che varianti posso adottare?

Grazie

inviato 10 anni fa
NeO_Giu
X 0 X

Fai la prova.

Io penso che non potresti accedere perché ti mancherebbe la corrispondenza dell'id di sessione tra il cookie in locale ed il file di sessione sul server remoto.  :bye:

risposto 10 anni fa
usecram
X 0 X

Io ho provato sullo stesso server... Ma non si può evitare?

risposto 10 anni fa
NeO_Giu
X 0 X

Se provi sullo stesso server per forza scusa.

Se chi attacca il tuo sito può caricare uno script php sul tuo server questo sarebbe l'ultimo problema di cui ti dovresti preoccupare credo.  :bye:

risposto 10 anni fa
usecram
X 0 X

Nel codice che ahi riportato la parte più esposta a richi si sicurezza è la query:

$query = "SELECT * from admin WHERE user = '$user' AND pass = '$pass'";

Da dove vengono $user e $pass? Rirettamente dal form?

L'esito del login viene memorizzato in una variabile di sessione. Questo approccio è corretto perché l'utente non ha la possibilità di manomettere tali variabili (non sto considerando particolari tipi di attacchi...)

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Nel codice che ahi riportato la parte più esposta a richi si sicurezza è la query:

$query = "SELECT * from admin WHERE user = '$user' AND pass = '$pass'";

Da dove vengono $user e $pass? Rirettamente dal form?

L'esito del login viene memorizzato in una variabile di sessione. Questo approccio è corretto perché l'utente non ha la possibilità di manomettere tali variabili (non sto considerando particolari tipi di attacchi...)

 :bye:

Va bene allora sono preoccupazioni inutili... Per la query non ti preoccupare, ho tralasciato parecchie righe nello script per i controlli e il resto :bye:

risposto 10 anni fa
NeO_Giu
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda