Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156

    Falla grave nella sicurezza delle SESSION

    aiuto! betatestando il sito che ho appena finito di sviluppare scopro un comportamento a dir poco ANOMALO nel comportamento delle session.

    in breve:

    codice:
    session_start();
    if($_SESSION['user'] == admin)
    { fai...}
    else
    { stampa err. autorizzazzioni }
    dopo questo codice ogni volta che assegno qualcosa alla variabile $user (non $_SESSION['user'] ma un'altra variabile di nome $user che riceve dati da un form tramite GET) questo viene assegnato anche a $_SESSION['user']! orrore!

    e vi assicuro che a parte che all'interno dell'if da nessuna altra parte nel codice c'è scritto $_SESSION['user'].

    Spero proprio sia un mio problema perchè se fosse PHP saremmo tutti nella m...a .

    oppure esiste una connessione tra variabili normali $qualcosa e variabili di sessione $_SESSION['qualcosa']?
    Errare n00bbium est, perseverare autem hackerum

  2. #2
    Mai sentita una cosa del genere, c'e' sicuramente qualche problema nel tuo codice o in qualche file che includi.

  3. #3
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    si infatti il bello è che finchè era in locale non era proprio mai successo... ma caricandolo in remoto ecco che si presenta il problema.

    non includo niente in PHP semmai nel HTML includo roba javascript che non c'entra NIENTE.

    che strano eh... ci sono rimasto male
    Errare n00bbium est, perseverare autem hackerum

  4. #4
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    codice:
    <?php
    session_start();           
    if(!($_SESSION['logged'] == "yes" && $_SESSION['user'] == "admin"))
    	echo '<script type="text/javascript">document.location.href=\'/admin/\';</script>';
    else{
            mysql_connect(...);
            mysql_select_db(...)
    
    	$names = array('idc');        //PROCEDURA DI CONTROLLO VARIABILI $_GET
    	$checker = true;
    	foreach($names as $name)
    		if(!(isset($_GET[$name]) && $_GET[$name] != "")) 
    			$checker = false;	
    	if($checker){
    		$idc = $_GET['idc'];
    		$rs = mysql_query("SELECT * FROM cliente WHERE id = $idc;");
    		if($rs){
    			$row = mysql_fetch_array($rs);
    			$nome = $row['nome'];
    			$email = $row['mail'];
    			$user = $row['user'];                 //QUI IL PROBLEMA!!!!
    			$pass = $row['pass'];
    			$scadenza = $row['scadenza'];
    			} else echo "errore in mysql";
    	}else{
    			$nome = "";
    			$email = "";
    			$username = "";
    			$pass = "";
    			$scadenza = "";
    	}
    ?>			
    			<html>
    			<head>
    			<script type="text/javascript">
                             //ROBA JAVASCRIPT
    			</script>
    			</head>
    			<body>
                              //ROBA HTML
    			</body>
    			</html>
    <?php
    }
    ?>
    posto il codice in questione...

    quando esegue $user = $row['user']; l'assegnazione avviene anche su $_SESSION['user'].

    booooooooooo

    faccio qualche prova...
    Errare n00bbium est, perseverare autem hackerum

  5. #5
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    infatti modificando DA $user A $username il problema non si verifica
    Errare n00bbium est, perseverare autem hackerum

  6. #6
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Se fai print_r($_SESSION) nn esce nulla. Invece cn var_dump visualizza tutto.
    Per gli Spartani e Sparta usa spartan Il mio github

  7. #7
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    a me il print_r funziona
    Errare n00bbium est, perseverare autem hackerum

  8. #8
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Riporto quello che ce scritto nel mio manulae, nn lo scritto io qui
    Per gli Spartani e Sparta usa spartan Il mio github

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    potrebbe essere un problema dovuto a register_globals = on? Se hai register_globals impostato in quella maniera rischi di farti male. Se fosse il tuo caso (lo scopri mettendo mano al php.ini), settalo su off, come da raccomandazioni (e dovrebbe essere di default da un qualche PHP 4.x, con x>1)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    @linoma

    scusa non capisco di cosa stai parlando... il mio problema cmq non era di non riuscire a stampare il vettore delle session

    grazie cmq!
    Errare n00bbium est, perseverare autem hackerum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.