Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: cookie e sessioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    cookie e sessioni

    Ciao a tutti;
    più che un aiuto vero e proprio avrei bisogno di qualche consiglio da parte di utenti più esperti perchè mi sento un po' confuso sugli argomenti in oggetto.
    Ho appena finito di studiare un modulo di un corso php che sto seguendo e che tratta i seguenti argomenti:

    - accesso a file di testo;
    - funzioni;
    - passaggio di parametri tramite query;
    - coockie;

    Per chiarirmi un po' le idee e verificare se tutto mi è chiaro ho provato a mettere tutto insieme e creare i moduli di registrazione e di login di un ipotetico sito web - pur sapendo che un vero sito web non usa di certo un .txt per memorizzare le informazioni... ma vabbè, questo abbiamo ora e questo usiamo...

    Il funzionamento è il seguente:

    -il modulo di registrazione salva i dati su un file di testo (iscritti.txt) e abbina per ogni utente un tkt alfanumerico casuale generato da una funzione creata da me; il formato è id|user|password|tkt;
    -il modulo di login mi indirizza alla pagina home.php
    -la pagina di home controlla l'esattezza dei dati di login (confrontandoli con iscritti.txt) e se corretti mi setta un cookie della durata di tot minuti;
    -dalla pagina home posso accedere alle altre pagine protette, tramite link-query d'interrogazione in cui passo l'id dell'utente e il tkt generato casualmente, per evitare di passare in query direttamente la password o che l'utente possa tentare di accedere a pagine di altri utenti direttamente smanettando sulla query d'interrogazione (ad esempio modificando l'id nel link); La necessità di passare parametri in query nasce in previsione che ogni utente possa visualizzare dati ad personam nelle varie pagine protette e quindi devo sapere i dati di quale "id" scaricarmi dai vari file;
    -in tutte le successive pagine controllo che il cookie sia valido e i parametri passati in stringa siano corretti, altrimenti do un messaggio di sessione scaduta, nel primo caso e di accesso irregolare nel secondo caso, e reindirizzo alla pagina di login.

    Mi chiedo prima di tutto se i vari passaggi siano corretti.
    Inoltre, questo meccanismo sebbene un po' contorto funziona alla perfezione, tranne nel caso in cui più utenti si registrano o si loggano contemporaneamente poichè in quel caso rischio di perdere coerenza sui file.
    Ora mi è stato detto che per risolvere questo problema occorre utilizzare le sessioni.
    Premesso che nel corso che ho seguito non ve n'è traccia e che quindi ho dato un'occhiata al materiale presente qui sul sito, ora che so a grandi linee come aprire, chiudere, passare parametri e recuperarli attraverso una sessione, in che modo mi si risolve il problema della perdita di coerenza su risorse condivise?

    Inoltre fondamentalmente non mi è chiaro quando usare i cookie, quando le sessioni o quando il passaggio di parametre in query, per mantenere informazioni di stato relative al navigatore tra le mie pagine e risolvere il problema dello stateless.
    Offro da bere a chi mi aiuta a chiarirmi le idee!!

    Il prossimo modulo del corso tratta della gestione dell'invio di email tramite php e dell'sql, ma a questo punto non so se andare avanti in quanto mi sembra che quello che sto imparando è molto lacunoso...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Adesso si che ho le idee molto più chiare!!!
    :-D

  3. #3
    per evitare di passare in query direttamente la password o che l'utente possa tentare di accedere a pagine di altri utenti direttamente smanettando sulla query

    Non capisco come può essere utile se io potrei leggere il file .txt con tutte le password... ad ogni modo ti suggerisco "per far colpo" ... di codificare il tutto in sha1

    sha1($stringa); e lo salvi in modo cryptato sul tuo file .txt

    Il resto non ho capito una mazza, prova a essere più umano .... non sai come riconoscere un utente rispetto ad un altro? invece del tuo "tkt" che cambia ogni volta (se ho capito bene) lo fai fisso o numeri semplici tipo 1,2,3,4,5 etc etc... prendi il php e leggi dal cookie il nickname scritto prima in sha1, trova la riga giusta e legge sul tuo txt ID dell'utente e prende i file da qualche parte.

    Oppure codifica anche in sha1 ID e lo salvi nel cookie senza ritornare sul txt...

    Potrebbe andare per il tuo scopo? non so se ho capito bene eh...
    Io penso con la mia di testa..tu come?

  4. #4
    Ciao,

    la domanda che fai è complessa e non proprio la più chiara (o di facile lettura) del mondo!

    I cookie sono salvati sul PC dell'utente e quindi, per cominciare, potresti ponderare sulle conseguenze in termini di sicurezza delle informazioni passate in tal modo. I cookie sono convenienti perché non gravano sulle risorse del server. La maggior parte degli utenti accetta cookie, ma non tutti, perciò un sistema che si basa su cookie potrebbe non funzionare a dovere per utenti che non accettano cookie.

    http://php.html.it/articoli/leggi/850/tutto-sui-cookie/
    http://php.html.it/guide/lezione/266...tato-i-cookie/

    Le session gravano sul server e più ce ne sono e peggio è per le sue risorse. Ma sono più sicure. Sempre che non sia un server condiviso nel qual caso ci sono delle possibilità che anche le session così create possano essere lette da maleintenzionati (i soliti hacker-nerd insomma che non hanno di meglio da fare che crackare proprio il tuo sito/server).

    http://php.html.it/guide/lezione/266...o-le-sessioni/
    http://php.html.it/guide/lezione/299...-sessioni-php/

    Le query (se intendi la stringa a fine link e non una query ad un database) sono un qualcosa di ancora diverso, completamente in chiaro, quindi non dovresti mai passare niente via query che sia vitale (appunto password, ecc.).

    http://php.html.it/guide/lezione/266...li-get-e-post/




    Inoltre fondamentalmente non mi è chiaro quando usare i cookie, quando le sessioni o quando il passaggio di parametre in query, per mantenere informazioni di stato relative al navigatore tra le mie pagine e risolvere il problema dello stateless.
    Offro da bere a chi mi aiuta a chiarirmi le idee!!
    Originariamente inviato da sitodue
    Adesso si che ho le idee molto più chiare!!!
    :-D

  5. #5
    MrsCassandra siamo nel 2012 non iniziamo a dire che i cookie non tutti li accettano.... facebook usa i cookie e se il browser non li accetta non entri e se l'utente non entra su facebook piange.... è come fare il paragone con programmi che hanno dipendenza .net 2.0....

    Inoltre usa i cookie per un ID (numero per il riconoscimento nel suo sistema e per il nickname) ovviamente se segue il mio consiglio in SHA1 non ha problemi di sicurezza della privacy...in ogni caso un pò di lettura non fa male....
    Io penso con la mia di testa..tu come?

  6. #6
    Non ti arrabbiare!!

    ...volevo quasi quasi aggiungere che tipicamente sarà lo specialista IT che ha disabilitato intenzionalmente i cookie tanto per fare le prove!!

    ...certo concordo oggi giorno "tutti" accettano i cookie e "tutti" hanno JS abilitato, ma mi sembra di capire che sitodue abbia bisogno di qualche "chiarimento esteso"...




    Originariamente inviato da Skyline90
    MrsCassandra siamo nel 2012 non iniziamo a dire che i cookie non tutti li accettano.... facebook usa i cookie e se il browser non li accetta non entri e se l'utente non entra su facebook piange.... è come fare il paragone con programmi che hanno dipendenza .net 2.0....

    Inoltre usa i cookie per un ID (numero per il riconoscimento nel suo sistema e per il nickname) ovviamente se segue il mio consiglio in SHA1 non ha problemi di sicurezza della privacy...in ogni caso un pò di lettura non fa male....

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Originariamente inviato da Skyline90
    Non capisco come può essere utile se io potrei leggere il file .txt con tutte le password... ad ogni modo ti suggerisco "per far colpo" ... di codificare il tutto in sha1
    Uhm...
    in effetti questi esempi con i file di testo perdono un po' di significato...
    Provo a spiegare meglio i miei 2 dubbi amletici!

    1° dubbio - Il problema della coerenza sui file; ora come ora se 2 utenti si registrano contemporaneamente, i dati di uno sovrascriveranno quelli dell'altro. Per ovviare al problema mi è stato fatto un discorso contorto sulle sessioni e sull'oggetto "file" che aprirebbe ogni sessione, ma non mi è chiaro.
    Mi viene in mente invece che più che risolverlo grazie alle sessioni, il problema lo risolvo usando un dbms che ha già dei controlli di coerenza sulle varie tabelle.. no?


    2° dubbio - Ora come ora, se dopo il login voglio far accedere un utente ad una sua area personale, con dati unici solo per lui, a me vengono in mente 3 modi:

    - passare l'id utente nella stringa d'interrogazione;
    - settargli un cookie;
    - aprirgli una sessione;

    Quello che non capisco è quando conviene utilizzare un metodo piuttosto che un'altro... qual'è la norma insomma... a quale delle 3 tecniche si rifanno i siti professionali?

  8. #8
    Originariamente inviato da sitodue

    Quello che non capisco è quando conviene utilizzare un metodo piuttosto che un'altro... qual'è la norma insomma... a quale delle 3 tecniche si rifanno i siti professionali?
    Io credo che l'obiettivo di questo compito e farlo funzionare perchè i siti professionali non usano assolutamente un file .txt e farlo sicuro su un file .txt non è facile e non credo sia possibile, in ogni caso io penso che se passi tutto in sha1 e usi 1 cookie con username e ID puoi identificare 1 utente in modo sicuro e facile.

    aggiungi un controllo nel form della registrazione e se trova l'username uguale nel file .txt gli da errore oppure un testo "Username già preso"....
    Io penso con la mia di testa..tu come?

  9. #9
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Originariamente inviato da sitodue
    Uhm...
    in effetti questi esempi con i file di testo perdono un po' di significato...
    Provo a spiegare meglio i miei 2 dubbi amletici!

    1° dubbio - Il problema della coerenza sui file; ora come ora se 2 utenti si registrano contemporaneamente, i dati di uno sovrascriveranno quelli dell'altro. Per ovviare al problema mi è stato fatto un discorso contorto sulle sessioni e sull'oggetto "file" che aprirebbe ogni sessione, ma non mi è chiaro.
    Mi viene in mente invece che più che risolverlo grazie alle sessioni, il problema lo risolvo usando un dbms che ha già dei controlli di coerenza sulle varie tabelle.. no?


    2° dubbio - Ora come ora, se dopo il login voglio far accedere un utente ad una sua area personale, con dati unici solo per lui, a me vengono in mente 3 modi:

    - passare l'id utente nella stringa d'interrogazione;
    - settargli un cookie;
    - aprirgli una sessione;

    Quello che non capisco è quando conviene utilizzare un metodo piuttosto che un'altro... qual'è la norma insomma... a quale delle 3 tecniche si rifanno i siti professionali?
    1) si usa un database ed hai risolto.

    2) poniti sempre queste due domande: è semplice? è sicuro? ovviamente la seconda prevale sulla prima.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  10. #10
    Originariamente inviato da Secta
    1) si usa un database ed hai risolto.

    2) poniti sempre queste due domande: è semplice? è sicuro? ovviamente la seconda prevale sulla prima.
    Questo è un compito che gli hanno richiesto a scuola non è un progetto che deve fare lui... e deve rispettare questo file .txt... comunque più di cryptare tutto in sha1 + cookie non puoi fare altro
    Io penso con la mia di testa..tu come?

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.