Pergunta

Eu tenho um site PHP que usa um esquema de autenticação bastante comum.

  • A área de login inteira requer SSL.
  • Um usuário digita seu nome de usuário e pw, se eles corresponderem ao db, uma sessão é iniciada e um conjunto de valor para eles.
  • Se tentar visitar uma página que requer autenticação, ele verifica para ver se esse valor está presente na sessão, e encaminha-los para a página de login, se não é.

Nós sempre obter algumas pessoas que têm loggin problemas no porque eles não estão definidas para os cookies de sessão uso, ou têm problemas com o cache stroring página para a frente, etc.

Ultimamente, no entanto, tivemos um monte de pessoas com IE que não pode fazer login. Fixação suas configurações de cookie de sessão e limpar o cache não ajuda, mas eles podem iniciar sessão se eles usam o Firefox / ópera no mesmo computador. Tenho certeza de que é um problema com o IE, e não entre em nada.

Alguém sabe de quaisquer novas mudanças IE 7 que afetaria os cookies de sessão?

Update:

I aplicou recentemente uma session_regenerate_id () ligue imediatamente após o login, como há agora algumas circunstâncias em que um usuário pode ter uma sessão existente que será usado, mas isso foi há algum tempo atrás.

Foi útil?

Solução

O meu primeiro passo seria encontrar um usuário que pode fazer login com o Firefox e não IE, e depois executar Fiddler contra ambos para ver as diferenças entre os pares de pedido / resposta HTTP para o processo de login. Isso deve, pelo menos, dar-lhe uma idéia melhor de onde olhar.

Outras dicas

Se as configurações de segurança do IE são dobrado para cima (o que é comum, especialmente em ambientes corporativos), ou se a página que você está registrando-se para está em um frame ou iframe, que poderia ser o que está mantendo o cookie de salvar. Tudo que você precisa fazer é definir a política P3P cabeçalhos HTTP se for o caso. Aqui é a melhor descrição que eu poderia encontrar sobre como implementá-las.

Eu não ouvi nada. No entanto, este é precisamente por isso que eu mudei para usando cookieless sessões em todos os meus projetos públicos. Acredito ASP.Net tem esta embutido, mas eu prefiro usar minhas próprias implementações. Passando querystring parâmetros sessionid de página para página e quer amarrá-lo para um recorde de DB ou algum outro armazenamento de dados é muito mais confiável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top