Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JSP e autenticazione utente (problemi di navigazione)

    Ciao a tutti, innanzitutto mi complimento per l'ottima gestione del forum e vi ringrazio per tutte le informazioni che sono riuscito ad attingere da questa immensa risorsa.

    Vi espongo il mio problema.

    Sto implementando un bell'applicativo per la gestione dei documenti privati di diversi utenti, utilizzando Java, JSP, e JPA. Il tutto lo faccio girare su tomcat.

    Ovviamente ogni utente per poter aver accesso ai suoi documenti privati deve inserire un username e una password, attraverso una pagina di login.
    Successivamente avviene il controllo delle credenziali di accesso in una servlet CheckLogin che preleva i dati dal DB e il reindirizzamento alla homepage oppure ad una pagina di errore, a seconda se l'utente ha inserito dati corretti o meno.
    Al momento dell'autenticazione l'oggetto utente viene messo in sessione e questo viene trasportato per tutta l'applicazione fino al momento del logout.
    Per il logout si passa per una servlet Logout che elimina l'utente dalla sessione.

    Fin qui tutto normal.

    Ho deciso di implementare l'applicazione utilizzando dei Java Server Pages Fragment. In particolare ho deciso di usare un header.jspf, che contiene l'intestazione del sito e il menu di navigazione in base ai vari permessi dell'utente. Nell'header.jspf è contenuta anche una porzione di codice che controlla l'esistenza dell'utente in sessione. In caso contrario mi reindirizza alla login. Fin qui credo sia tutto corretto.

    Il mio problema è che una volta effettuato il logout, se utilizzo il tasto "indietro" del browser, visualizzo la pagina precedente, come se l'utente fosse ancora loggato. Però se aggiorno la pagina precedente vengo reindirizzato correttamente alla login.

    Mi viene da pensare che il fragment header.jspf non viene eseguito nel momento in cui torno indietro. Suppongo che il problema sia dovuto dalla cache del browser (oppure posso configurare tomcat?) , e volevo chiedere se esiste un modo per far si che la pagina venga ricaricata al momento del backward.

    Non è un gran problema di sicurezza, in quanto appena eseguito il logout basterebbe chiudere il browser, ma non mi posso affidare al buon senso dell'utente (che ovviamente non sarà un informatico) per evitare che i suoi dati sensibili vengano visualizzati da terzi (tipo la fidanzata che subentra immediatamente dopo sulla postazione pc senza che il browser sia stato chiuso).

    Preciso che una volta effettuato il logout non è più possibile utilizzare collegamenti e funzionalità del sito, ma si possono solo visualizzare le pagine precedentemente prodotte, le quali però contengono sicuramente dati che devono essere protetti.

    Vi ringrazio anticipatamente per ogni consiglio che vogliate fornirmi.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Questa è una soluzione in puro JSP
    http://www.javaworld.com/javaworld/j...ut.html?page=1

    L'articolo presenta la più classica delle situazioni, illustra una possibile gestione del login/logout e quindi, a partire dalla pagina 4, le azioni da intraprendere (in termini di headers) per cercare di risolvere i problemi causati dall'amato/odiato "back" button.

    Magari si può applicare così com'è anche al tuo caso, o quanto meno, ti indirizza verso la soluzione appropriata per la tecnologia in uso nel tuo sistema.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Grazie ad Andrea1979 per l'ottimo articolo postato.

    In realtà riesco a immaginare almeno un caso per cui la sicurezza non può essere garantita del tutto, violando di fatto il terzo caso presentato nel tutorial (per ovvie ragioni non considero il caso di malware, in quanto fuori contesto):
    - l'utente effettua il logout e si allontana dal computer;
    - un nuovo utente prende il suo posto e preme il pulsante "indietro" fino a tornare alla pagina di login;
    - a questo punto, fa una re-submit delle credenziali in cache dell'utente precedente;
    - poichè è un utente "scafato" riesce a catturare i dati in uscita, rimuovendo il campo "lastLogon" e autenticandosi correttamente sul server.

    Naturalmente stiamo parlando di una procedura inavvicinabile per la stragrande maggioranza degli utenti.

    Segnalo inoltre una discussione recente che, partendo da premesse diverse, è virata su un topic simile a questo:
    http://forum.html.it/forum/showthrea...readid=1423034

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.