Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - php e sessioni
Forum - PHP - php e sessioni

Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 23:37
Venerdì, 01/04/2011
ho una domanda da farvi...

se io usassi un sistema del genere per fare un autenticazione per un area protetta, incorrerei in dei rischi di sicurezza da parte di utenti malevoli o no?

considerando che:
- invia è il nome del pulsante premuto
- nome e password sono i nomi dei due input di tipo text
- users è il nome della tabella dove sono inseriti tutti gli utenti registrati
Codice sorgente - presumibilmente Php

  1.         session_regenerate_id(TRUE);
  2.  
  3. if ($_POST['invia']){
  4.                 $nome=htmlentities($_POST['nome'], ENT_QUOTES);
  5.                 $nome=trim($nome);
  6.  
  7.                 if ($nome=="")
  8.                         die("Non hai inserito il nome");
  9.  
  10.                 $password=trim($_POST['password']);
  11.                 if ($password=="")
  12.                         die("Non hai inserito la password");
  13.                 else
  14.                         $password=md5($password);
  15.  
  16.                 $query = "select * from users where nome='$nome' and password='$password'";
  17.                 $result = mysql_query($query,$db);
  18.                 $numRighe = mysql_num_rows($result);
  19.                
  20.                 if($numRighe == 1) {
  21.                         $_SESSION['user'] = $nome;
  22.                         $_SESSION['dentro'] = "si";
  23.                         header("Location: /AREA_CON_FUNZIONI_AD_ACCESSO_PROTETTO");
  24.                 }
  25. }


------------------------------
ora questo codice invece sta nella pagina dell'area ad accesso protetto:
Codice sorgente - presumibilmente Php

  1.         session_regenerate_id(TRUE);
  2.         $user=$_SESSION['user'];
  3.         $dentro=$_SESSION['dentro'];
  4.  
  5.         if (trim($user) !="" and ($dentro=='si')){
  6.                 $query = "insert into TABELLA_PROTETTA ecc....."
  7.         }


------------
la mia domanda è:
questo codice garantisce veramente che i dati all'interno della tabella "TABELLA RISERVATA"  possono essere inseriti solo ed esclusivamente da un utente che si è loggato veramente?
ai fini della sicurezza c'è modo di poter aggirare, da parte di un utente malevolo, questa autenticazione?
se si in che modo??

grazie a chi mi risponderà

Ultima modifica effettuata da Anonymous il 02/04/2011 alle 12:13
PM
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 21:51
Sabato, 02/04/2011
hai provato a fare dei testi di sql injection?
prova con acunetix e vedi che succede.

no il problema non è l'sql injection perché come vedi prima di inserire nella query i dati presi in input dall'utente li codifico con htmlentities... il problema che mi ponevo era se esistesse un qualche modo per aggirare le variabili di sessione - Anonymous - 02/04/11 22:46
PM