Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412

    Perchè le sessioni hanno bisogno dei cookie?

    Perchè le sessioni hanno bisogno dei cookie o comunque che venga passao il token tramite GET? Non sarebbe più logico che il server, così come gestisce le sessioni automaticamente, tenga in considerazione l'IP da cui proviene la chiamata di uno script anzichè utilizzare il suddetto codice randomico? Il vantaggio ovviamente risiederebbe nella non-necessità di tenere i cookie abilitati da parte del client.

    Poi un'altra informazione. Seguendo vari tutorial ho notato che più o meno tutti utilizzano come chiave associativa dell'array $_SESSION, per memorizzare una particolare informazione che accerti il corretto login di un utente, un valore alfanumerico randomico o comunque poco intuitivo

    esempio:

    [...script per verificare il login...]
    echo("Welcome");
    $_SESSION['qHdweNfpod']=$username;


    Qual è il vantaggio di usare questa chiave poco intuitiva? Ovvio che mi vien pensare ad una ragione di sicurezza, ma tuttavia non vedo come possa rappresentare un pericolo utilizzare invece una parola più intuitiva come

    $_SESSION['logged']=$username;


    Un eventuale hacker che abbia scoperto il mio token di sessione e lo invia tramite GET, che gli cambia?

  2. #2
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    Il web e' stateless - questo e' il motivo per cui c'e' bisogno di informazioni salvate in un cookie affinche' una sessione possa essere identificata sul server.

    Una cosa che purtroppo molti developers sembrano ignorare e' che i cookies viaggiano con tutte le richieste, anche a prescindere dal fatto che https sia usato oppure no - questo e' il motivo per cui e' sbagliato usare https soltanto, per esempio, sulle pagine di login e usare semplice http per tutto il resto, come spesso e' il caso.

    L'IP address non e' utilizzabile perche' non e' detto che sia statico e dipenderebbe da cosa c'e' di mezzo tra il client e il server (caching proxies, load balancing, etc etc). Conservare una piccola informazione sul client, giusto il necessario per identificare la sessione, e' la soluzione piu' semplice.

    Per la seconda domanda, qualunque informazione tu conservi nella sessione e' riservata tranne nel caso un attacker riesca per esempio ad eseguire un session hijacking; tecnicamente non hai bisogno di chiavi random e simili per conservare informazioni nella sessione. Poi sarebbe consigliabile flag di cookies per l'utilizzo HTTP only, cosi' da minimizzare i rischi di vari tipi di attacchi client based...
    Questa e' la versione breve

    Ci si potrebbe scrivere un libro soltanto sulla gestione di sessioni, cookies, etc.
    Se sei interessato leggiti questo white paper, A Secure Cookie Protocol, molto interessante sul soggetto.

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.