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

Discussione: Sessioni php

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327

    Sessioni php

    Ciao a tutti,

    non riesco a capire il comportamento di php per quanto riguarda la creazione delle sessioni.
    All'inizio dello script eseguo il session_start();

    Questo mi crea un file sessione nella cartella delle sessioni, fin qui tutto ok.
    Da quanto ho capito il session_start() crea o continua una sessione in caso gli passi il PHPSESSID tramite query string.

    Ho provato ad aggiornare la pagina ( senza passagli il phpsessid ) e mi aspettavo che mi creasse una nuova sessione in quanto ripassa dal sessio_start();, invece ne crea nessuna nuova.

    Dove sbaglio?

    Thanks
    By Games

  2. #2
    session_start() per prima cosa cerca di leggere il cookie di sessione su client. se il cookie non esiste ne crea uno con le caratteristiche descritte nel php.ini e lo invia al browser. Nel contempo genera un file di sessione con lo stesso nome del cookie con un prefisso definito nel php.ini.

    Ad ogni riesecuzione del session_start() ripete la stessa sceneggiata. Se esiste il cookie e questo e' valido (lato client) allora cerca un file con le stesse caratteristiche e controlla che non abbia superato il timeout di validita' (lato server). Se il file non e' piu' valido torna al primo step e rifai la procedura. Se e' valido rende il contenuto disponibile allo script, contenuto che risulta essere l'array $_SESSION serializzato.

    Esiste la possibilita' nel caso il client non abbia i cookie abilitati di inviare il session_id tramite URL. Ma personalmente ritengo che se l'utente non ha i cookie abilitati (almeno quelli dei siti non di terze parti) possa serenamente andare a cantare in altre coorti. Se non si fida di me non vedo la ragione per cui io debba fidarmi di lui. Via url potrebbe passare il link a chiunque e chiunque potrebbe collegarsi in vece sua.

    Quindi con i cookie abilitati il riconoscimento dell'utente avviene in modo trasparente. Prova a disabilitare i cookie, ovviamente dopo aver cancellato tutti quelli memorizzati.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    Ok Grazie.
    Utilizzando le sessioni in questo modo non ho bisogno di gestire il PHPSESSID giusto?
    By Games

  5. #5
    Originariamente inviato da Games
    Ok Grazie.
    Utilizzando le sessioni in questo modo non ho bisogno di gestire il PHPSESSID giusto?
    qui trovi tutto cio' che ti puo' servire.

    http://www.php.net/manual/en/book.session.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    Originariamente inviato da piero.mac
    qui trovi tutto cio' che ti puo' servire.

    http://www.php.net/manual/en/book.session.php
    Grazie per il link.
    Una domanda... visto che l'id della sessione viene passato tramite che cookie che senso ha allora passarlo tramite query string come si vede su molti siti/forum?
    By Games

  7. #7
    Originariamente inviato da Games
    Grazie per il link.
    Una domanda... visto che l'id della sessione viene passato tramite che cookie che senso ha allora passarlo tramite query string come si vede su molti siti/forum?
    infatti per me non ha senso se usi le sessioni php.

    Forse utilizzano un qualcosa di diverso dalle sessioni php oppure tralasciano l'uso dei cookie.

    Non credo sia un fatto di moda, e poi dipende da cosa vuoi proteggere ed a quale livello di sicurezza. Di certo passare dati (qualsiasi dato sensibile) tramite URL lo lascio a chi vuole farlo. Penso anche a quelli che passano gli id da cancellare via URL.... ?delete=y&id=123 e poi magari mettono direttamente nella query $_GET['id'] .. fantastico.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    Originariamente inviato da piero.mac
    infatti per me non ha senso se usi le sessioni php.

    Forse utilizzano un qualcosa di diverso dalle sessioni php oppure tralasciano l'uso dei cookie.

    Non credo sia un fatto di moda, e poi dipende da cosa vuoi proteggere ed a quale livello di sicurezza. Di certo passare dati (qualsiasi dato sensibile) tramite URL lo lascio a chi vuole farlo. Penso anche a quelli che passano gli id da cancellare via URL.... ?delete=y&id=123 e poi magari mettono direttamente nella query $_GET['id'] .. fantastico.
    ok.
    Ora invece ho provato a disattivare i cookie e difatti mi crea n sessioni a ogni refresh.
    Ho provato a passargli tramite query string il SID ( nel php.ini l'ho chiamato così ) però continua a crearmi n sessioni. In teoria la session_start se trova nel query string il numero della sessione dovrebbe continuarla no?
    By Games

  9. #9
    Originariamente inviato da Games
    ok.
    Ora invece ho provato a disattivare i cookie e difatti mi crea n sessioni a ogni refresh.
    Ho provato a passargli tramite query string il SID ( nel php.ini l'ho chiamato così ) però continua a crearmi n sessioni. In teoria la session_start se trova nel query string il numero della sessione dovrebbe continuarla no?
    ehh no!

    ci sono delle opzioni settate nel php.ini ... te ne agevolo un paio con la loro descrizione (da php 5.3

    ; This option forces PHP to fetch and use a cookie for storing and maintaining
    ; the session id. We encourage this operation as it's very helpful in combatting
    ; session hijacking when not specifying and managing your own session id. It is
    ; not the end all be all of session hijacking defense, but it's a good start.
    ; http://php.net/session.use-only-cookies
    session.use_only_cookies = 1

    ; trans sid support is disabled by default.
    ; Use of trans sid may risk your users security.
    ; Use this option with caution.
    ; - User may send URL contains active session ID
    ; to other person via. email/irc/etc.
    ; - URL that contains active session ID may be stored
    ; in publically accessible computer.
    ; - User may access your site with the same session ID
    ; always using URL stored in browser's history or bookmarks.
    ; http://php.net/session.use-trans-sid
    session.use_trans_sid = 0

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    Originariamente inviato da piero.mac
    ehh no!

    ci sono delle opzioni settate nel php.ini ... te ne agevolo un paio con la loro descrizione (da php 5.3
    Ottimo grazie!
    Pensavo bastasse solo quel parametro. Faccio qualche prova.
    By Games

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.