2013-04-30 2 views
2

내 웹 사이트의 로그인 코드에 & 사용자 이름이 맞으면 사용자를 로그인 상태로 유지하기 위해 쿠키를 설정합니다. 방금 ​​사용자가 ' 그의 브라우저를 통해 자동으로 쿠키를 허용하고 로그인을 막을 수 있습니다. 해당 쿠키가 설정되어 있지 않습니다.사용자가 쿠키를 허용하지 않습니다 - 로그인 PHP

쉽게 대응할 수 있습니까? 내가 사용하는 코드가 필요한 경우 알려주십시오.

+6

일부 사용자는 정기적으로 쿠키를 삭제/비활성화한다고 생각하지만 귀하의 사이트 (예 : 로그인이 필요한 사용자)의 일부 기능을 사용하려면 쿠키가 필요하다고 말하는 것은 무리입니다. 플래시 해킹 또는 html5 로컬 저장소로 잠재적 인 해결 방법이 있지만 이것은 쿠키가 설계된 것이며 사용자가이를 이해하지 못하고 있다고 의심 할 수 있습니다 (아마도 쿠키 만 인식하고있을 것입니다). – Basic

+3

@Basic 아니면 그냥 URL의 세션 ID (끔찍한 해결책이기도 함) OP하기 : 사용자는 추악한 작업을 생각해 낼 시간을 할 가치가 없습니다. 그가 그 문제의 쿠키를 받아들이지 않으면. – PeeHaa

+0

@PeeHaa 埽 방금 대답을 타이프했습니다. – Basic

답변

1

복잡한 javascript/ajax를 사용하는 경우이 기능을 사용할 수는 있지만 실제로 고통을받을 수 있습니다.

간단히 말해 세션 ID를 쿠키에 저장하는 대신 모든 링크의 끝에 포함시킵니다. 그리고 그것은 단지 소요 -

그렇게

http://example.com/somepage.php 

는 PHP가 어떤 경우에 당신을 위해이 작업을 수행 할 수있는 동안, 당신이 자바 스크립트에서 자신을 구축 링크와 함께 도움이되지 않습니다, 불행하게도

http://example.com/somepage.php?SessionId=ABC123 

된다 ID없이 단일 링크를 클릭하면 효과적으로 사용자를 로그 아웃합니다.

자세한 내용은 this page을 참조하십시오.

의견에서 Quentin이 언급했듯이 쿠키를 사용하여 세션을 만든 브라우저를 식별하지 못하면 링크를 공유하면 세션을 공유 할 수 있습니다. 이것은 IP 주소/사용자 에이전트를 검사하여 완화 할 수는 있지만 예방할 수는 없지만 NAT 및 표준 브라우저를 사용하는 대기업 환경에서는 실패 할 수 있습니다.

+4

URL에 세션 ID를 저장하면 우발적으로 쉽게 유출 될 수 있습니다.이 기술은 심각한 보안 위험을 초래합니다. – Quentin

+0

Alice는 Stuff를 판매하는 웹 사이트로 이동합니다. 그녀는 그녀를 쇼핑 바구니와 연결시키기 위해 세션 ID를 얻습니다. 그녀는 사물을 좋아합니다. 그녀는 주소 표시 줄의 URL을 Twitter에 복사하거나 붙여 넣어 다른 사람과 공유합니다. Bob은 Thing도 좋아하고 Alice의 쇼핑 바구니에 추가 한 다음 쇼핑 바구니에있는 모든 것을 봅니다. – Quentin

+0

훌륭하고 스포트. 대답 기본 주셔서 감사합니다,하지만 난 노력하고 사용자가 자신의 쿠키를 비활성화하면 간단하게 메시지를 넣을 것 같아요. 다시 한번 감사드립니다. –

관련 문제