Domanda

Ho un sito PHP che utilizza uno schema di autenticazione piuttosto comune.

  • L'intera area di login richiede SSL.
  • Un utente inserisce il proprio nome utente e pw, se corrispondono al db, una sessione viene avviata e un valore impostato per loro.
  • Se si tenta di visitare una pagina che richiede l'autenticazione, verifica per vedere se questo valore è presente nella sessione, e li inoltra alla pagina di login, se non lo è.

Abbiamo sempre ottenere un paio di persone che hanno loggin problemi perché non sono impostati per utilizzare i cookie di sessione, o hanno problemi con la cache stroring pagina in avanti, ecc.

Ultimamente, però, abbiamo avuto un sacco di persone con IE che non riesco ad accedere. Fissaggio loro impostazioni dei cookie di sessione e svuotare la cache non aiutano, ma possono effettuare il login se usano Firefox / Opera sullo stesso computer. Sono abbastanza sicuro che sia un problema con IE, e non niente in mezzo.

Qualcuno sa di eventuali recenti modifiche a IE 7 che interesserebbe i cookie di sessione?

Aggiornamento:

ho fatto di recente implementare un session_regenerate_id () chiamare immediatamente dopo il login, come ora ci sono alcune circostanze in cui un utente può avere una sessione esistente che verrà utilizzato, ma quello era un bel po 'di tempo fa.

È stato utile?

Soluzione

Il mio primo passo sarebbe quello di trovare un utente che può accedere con Firefox e non IE, e quindi eseguire Fiddler contro sia per vedere le differenze tra le coppie di richiesta HTTP / risposta per il processo di login. Questo dovrebbe, almeno, vi darà una migliore idea di dove andare a cercare.

Altri suggerimenti

Se le impostazioni di sicurezza di IE sono scaldata subito (che è comune soprattutto in ambienti aziendali), o se la pagina che si sta accedendo a è in un frame o iframe, che potrebbe essere quello che sta mantenendo il cookie di risparmio. Tutto quello che dovete fare è impostare policy P3P intestazioni HTTP, se questo è il caso. Ecco la descrizione migliore che ho potuto trovare su come implementarle.

Non ho sentito nulla. Anche se, proprio per questo sono passato ad usare le sessioni senza cookie su tutti i miei progetti pubblici. Credo ASP.Net ha costruito in questo, ma io preferisco usare le mie proprie implementazioni. Passaggio di parametri querystring sessionid da una pagina all'altra e sia legandolo a un record DB o qualche altro archivio di dati è molto più affidabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top