Pagina 3 di 22 primaprima 1 2 3 4 5 13 ... ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 216
  1. #21
    ^_^

    well dovevi seguire il discorso attentamente...

    allora "s" corrisponde all'id di sessione, ovvero a quella stringa unica che ti permette di identificare l'utente per vedere se è connesso o meno...insomma sarebbe id_sess.

    id_sess tu lo generi al momento del login e poi lo devi passare o via GET o via COOKIE

    per i cookie ---> DELETE FROM sessions WHERE id_sess={$_COOKIE['s']}
    in get ---> DELETE FROM sessions WHERE id_sess={$_GET['s']}

    in questo modo elimini fisicamente la sessione e vieni buttato fuori ^_^

    fine

    PS:
    il cookie per "s" lo devi impostare quando fai il login cosi:
    setcookie("s",$id_sess);

    in modo tale che il cookie il browser lo tiene fino a quando nn chiudi la finestra del browser...poi viene eliminato
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  2. #22
    uhm hai fatto un po di confusione ^_^

    <form name="Sample" method="get" action="auth.php">
    con il metodo get (a proposito xchè mi fà vedere http://j3s4j4/riservata/auth.php?us...min&Login=Login nel browser? admin ecc non dovrebbero essere nascosti con get?)
    se li metti in get passano nell barra di sopra...passali in post
    ricordati di cambiare il nome delle var in auth.php da $_GET['XYZ'] a $_POST['XYZ']

    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #23
    Originariamente inviato da daniele_dll
    vista la classe ma in questo modo le sessioni sono su filesystem...e come dicevo prima uno può fare mambassa...

    secondo me, e lo continuo a ripetere, le sessioni su filesystem sono le + pericolose...ti faccio 1 esempio

    tu hai 1 che ti vuole bucare il sito
    bene allora fa un whois, vede chi è il tuo hoster, si registra da lui pagando i 50€ all'anno (che nn sono nulla) un tonto script php si legge i vari file di sessioni (di solito stanno dentro /tmp) se li copia in blocco...tramite 1 classe se li zippa (c'è ne sono a bizeffe) e lui li ha i dati che poi ci stia 1 giorno, 1 minuto o 1 mese a decrittarli a i dati e può entrare...

    mmm cmq se vuoi un consiglio nella classe metti che ti salva la pass nella sessione e falla controllare ogni volta...senno uno si scarica il file...cambia il timestamp e può reutilizzare la sessione a vita senza avere problemi...essendo anche la sessione di admin su filesystem...se le scarica mentre l'admin è dentro...buona notte...è finita

    almeno questo è il mio consiglio...poi nn zo...vedi tu

    le sessioni su HD sono facili, ma pericolose...
    non sono d'accordo, se non salvi sulla sessione dati sensibili sei più che sicuro.....anche se riesce ad ottenere il file come dici tu cosa se ne fà? che magari contiene solo la variabile logged? caso mai è più pericoloso farlo con i db come dici tu che per ogni pagina aperta devi spedire dati al server con il rischio di essere intercettati....

    Boh io la vedo così poi magari canno alla grande
    Ciao
    Kaworu
    Kaworu.it
    Bookmarks on line i tuoi preferiti ovunque
    il tempo è il miglior dottore.....solo che è parecchio lento ...troppo lento
    wxKonTEXT Editor di testi(linux, win e mac), new version

  4. #24
    Utente di HTML.it L'avatar di blukarma
    Registrato dal
    Aug 2002
    Messaggi
    1,186
    sono arrivato a questo punto:

    <?
    include("gestconfig.php");

    // mi connetto al db
    $link = mysql_connect($db_host, $db_user, $db_password) or die ("non riesco a connettermi al database");

    // verifico se esistono username e password
    mysql_select_db($database);
    $sql = "SELECT * FROM utenti WHERE username = '$username' && password = '$password'";
    $query = mysql_db_query ($database,$sql) or die ("Impossibile eseguire l'interrogazione");

    // estraggo i risultati della query
    $array=mysql_fetch_array($query);
    $id_user = "$array[id_user]";
    // verifica degli errori
    echo mysql_error();

    // se username e password esistono registro la sessione
    if (($array['username'] == $username) && ($array['password'] == $password))
    {

    // cancello le sessioni doppie
    mysql_select_db($database);
    $sql_delete = "DELETE FROM sessioni WHERE id_sess={$id_sess} OR UNIX_TIMESTAMP(NOW()) - last_action => {$_SESSIONS_VARS['gc_time']}";
    $query_delete = mysql_db_query ($database,$sql_delete);

    // nuovo id_sess
    $id_sess = md5(uniqid(microtime()));

    // inserisco i nuovi dati
    mysql_select_db($database);
    $sql_insert = "INSERT INTO session (id_sess, id_user, ip, user_agent, last_action) VALUES ('$id_sess','$array[id_user]','{$_SERVER['REMOTE_ADDR']}','{$_SERVER['HTTP_USER_AGENT']}',UNIX_TIMESTAMP(NOW()))";
    $query_insert = mysql_db_query ($database,$sql_insert);

    // aggiorno i dati nella tabella utenti
    mysql_select_db($database);
    $sql_update = "UPDATE utenti SET last_login = UNIX_TIMESTAMP(NOW()) WHERE id_user = {$id_user}";
    $query_update = mysql_db_query ($database,$sql_update);



    // registro il biscottino
    setcookie("s", $id_sess, time()+3600);

    // verifica degli errori
    echo mysql_error();


    echo "Ok - riuscito";
    echo "
    $_COOKIE[s]";
    echo "
    $id_sess";
    }
    // se la login non ha ha successo chiudo e stampo errore
    else
    {
    echo "Errore";
    }
    mysql_close($link);
    ?>


    avrei un pochino di domande, sono ottuso lo avrai capito ,

    in questo modo ho notato che anche s effettuo una login non corretta riesco ugualmente ad entrare (mancherebbe la parte che dice she se pwd e usr sono falsi blocco il tutto ma non so come farla)

    inoltre, come avrai notato, alla fine stampavo il coockie e la var $id_sess come verifica; teoricamente le due dovrebbero coincidere invece non lo fanno praticamente una precede l'altra (il coockie è quello della sessione precedente!?!)

    scusa ma il logout mica lo ho capito

    il check lo metto in questa pagina o in quella protetta?

    p.s. ti ho aggiunto sul mio icq ho fatto male?
    "viva la mucca, che dio la beneducca"
    (Diego Abatantuono - Eccezziunale... Veramente - 1982)

  5. #25
    Utente di HTML.it L'avatar di blukarma
    Registrato dal
    Aug 2002
    Messaggi
    1,186
    :quote:
    "viva la mucca, che dio la beneducca"
    (Diego Abatantuono - Eccezziunale... Veramente - 1982)

  6. #26
    Originariamente inviato da kaworuskench
    non sono d'accordo, se non salvi sulla sessione dati sensibili sei più che sicuro.....anche se riesce ad ottenere il file come dici tu cosa se ne fà? che magari contiene solo la variabile logged? caso mai è più pericoloso farlo con i db come dici tu che per ogni pagina aperta devi spedire dati al server con il rischio di essere intercettati....

    Boh io la vedo così poi magari canno alla grande
    Ciao
    Kaworu
    uhm...ti ricordo che solo lo 0.1% degli hoster fa usare il server MySQL in remoto...quindi scarta questo problema...

    è vero ciò che dici tu...ma ad es possono prendere il file della sessione e copiarselo...quando serve rimetterlo...tu che fai? mentre con mysql le sessoni attive le puoi gestire solo tu!

    ci sono milioni di motivi che dicono usa mysql...tanti milioni
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #27
    @daniele_dll: standing ovation
    sei un grande.. anche e sopratutto per la disponibilità di gente brava a programmare ce n'è... ma così disponibili non so


    cmq voglio provare anche io a dare un taglio + sicuro ai miei scriptini... cambio da semplice cookie a sessioni e anche io concordo sul tenerle in DB
    quindi daniele.. tieniti pronto ad aiutare un altro fagiano [ecco perchè ti ho lodato prima ]

    cmq se ho capito bene basta fare login - logout e controllo incluso all'inizio di ogni pagina no? cioè... la stessa cosa ch efacevo con i cookie.. no? solo che adesso verifico se c'è il sid invece di verificare il cookie... quindi per una prima prova sempice [poi implemento il resto] mi basta un database così:

    sessioni
    id_sess - CHAR 32
    id_user - INT 10 - UNSIGNED
    ip - VARCHAR 25

    utenti
    id_user - INT 10 - UNSIGNED - AUTOINCREMENT
    username - VARCHAR 255
    password - VARCHAR 255

    giusto?

    ci provo

  8. #28
    daniele.. se hai tempo... perchè non scrivi una pillolina [o un articolo su freephp visto che ne hai certamente i requisiti] sulle sessionicon il database? da affiancare all'ottima pillola sulle sessioni classiche

  9. #29
    Originariamente inviato da }gu|do[z]{®©
    daniele.. se hai tempo... perchè non scrivi una pillolina [o un articolo su freephp visto che ne hai certamente i requisiti] sulle sessionicon il database? da affiancare all'ottima pillola sulle sessioni classiche
    Perchè lo sto scrivendo io
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  10. #30
    Originariamente inviato da gm
    Perchè lo sto scrivendo io
    tu sei un ladro di polli!

    quando sarà pronta?

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.