Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Se vuoi che l'utente non possa essere loggato da più postazioni contemporaneamente puoi salvarti nel db all'interno dell'oggetto utente l'id di sessione (in fase di login) e fare un controllo solo su quello. In ogni pagina in cui l'utente deve essere autenticato controlli se l'id della sessione e quello sul db sono gli stessi, in quel caso è tutto ok, se invece non è così consideri nulla l'autenticazione, ripulisci sessione e campo del database e fai effettuare il login nuovamente. Ovviamente in fase di logout devi cancellare sia la sessione sia il campo del db dove hai salvato l'id di sessione.

    Così, nel caso che mi hai descritto, se un utente lascia il browser aperto con una sessione attiva in ufficio/facoltà una volta arrivato a casa invaliderà quella sessione semplicemente facendo il login da una postazione diversa, senza bisogno di cambiare password.

    Su questi argomenti sono un po' arrugginito perché negli ultimi anni usando i framework il processo di autenticazione spesso lo tocco a fatica, ma non credo di averti detto cazzate

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    52
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Se vuoi che l'utente non possa essere loggato da più postazioni contemporaneamente puoi salvarti nel db all'interno dell'oggetto utente l'id di sessione (in fase di login) e fare un controllo solo su quello. In ogni pagina in cui l'utente deve essere autenticato controlli se l'id della sessione e quello sul db sono gli stessi, in quel caso è tutto ok, se invece non è così consideri nulla l'autenticazione, ripulisci sessione e campo del database e fai effettuare il login nuovamente. Ovviamente in fase di logout devi cancellare sia la sessione sia il campo del db dove hai salvato l'id di sessione.

    Così, nel caso che mi hai descritto, se un utente lascia il browser aperto con una sessione attiva in ufficio/facoltà una volta arrivato a casa invaliderà quella sessione semplicemente facendo il login da una postazione diversa, senza bisogno di cambiare password.

    Su questi argomenti sono un po' arrugginito perché negli ultimi anni usando i framework il processo di autenticazione spesso lo tocco a fatica, ma non credo di averti detto cazzate
    Lo avevo pensato, ma io uso il session regenerate id, quindi non credo si possa fare perchè cambia sempre ad ogni azione.
    Avevo pensato invece a memorizzare ad ogni login l'user agent con
    Codice PHP:
    $_SERVER['HTTP_USER_AGENT'
    memorizzare tutti gli accessi dai vari dispositivi, ad ogni azione viene fatto un controllo se esiste l'user agent altrimenti termina la sessione.
    E poi dare la possibilità all'utente di disconnettere tutti i dispositivi semplicemente cancellando tutti i record sul database.
    E'giusto come ragionamento? E soprattutto l'user agent è univoco o possono esisterne di uguali?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da carlos84 Visualizza il messaggio
    ...
    E'giusto come ragionamento? E soprattutto l'user agent è univoco o possono esisterne di uguali?
    L'user agent altro non è che la firma del browser in uso quindi un certo browser browser nella stessa versione, avrà user agent uguale ovunque viene installato.
    Firefox 67.0 sul mio PC risulta lo stesso user agent di Firefox 67.0 installato sul tuo.

    Ti voglio chiedere una cosa: stai facendo tutto questo a scopo didattico, perché la tua applicazione gestisce dati sensibili o per tua paranoia?
    Perché per un sito normale tutto ciò è esagerato.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    52
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    L'user agent altro non è che la firma del browser in uso quindi un certo browser browser nella stessa versione, avrà user agent uguale ovunque viene installato.
    Firefox 67.0 sul mio PC risulta lo stesso user agent di Firefox 67.0 installato sul tuo.

    Ti voglio chiedere una cosa: stai facendo tutto questo a scopo didattico, perché la tua applicazione gestisce dati sensibili o per tua paranoia?
    Perché per un sito normale tutto ciò è esagerato.
    sto realizzando un gioco online ovviamente a scopo amatoriale e visto che è pratica comune il furto di account nei giochi online, voglio evitare che ciò possa accadere

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.