2012-03-02 5 views
10

꽤 기본적인 질문은 여기에 있습니다. PHP에서 사용자 브라우저의 쿠키가 비활성화 된 경우 서버 쿠키 ($_SESSION)와 클라이언트 쿠키 ($_COOKIE, setcookie)를 모두 사용할 수 없거나 후자 만 사용할 수 없습니까? 기본적으로 사용자가 로그인하거나 세션이 필요한 작업을 수행 할 수 없습니까?쿠키가 비활성화 된 경우 어떻게됩니까?

누군가 쿠키를 사용하지 않으려 할 것입니까?

감사합니다.

답변

14

예, 사실입니다. 세션과 일반 쿠키는 모두 일반 쿠키입니다. 사용자가 쿠키를 허용하지 않으면 쿠키를 사용하는 기능을 사용할 수 없습니다. 거의 모든 인터넷이 그 사용자를 위해 망가질 것이라는 것을 의미합니다. 따라서이 시대에는 쿠키가 전혀 사용되지 않는 사람이 거의 없습니다.

PHP에는 transparent session ids이라는 기본 제공 메커니즘이있어 쿼리 매개 변수에 세션 ID를 포함하는 모든 링크를 자동으로 다시 작성합니다. URL에있는 세션 ID가 완전히 새로운 웜 깡통을 열었 기 때문에 사용하지 않을 것을 제안합니다.

사용자 편의를위한

, 당신이 얻을 수 있는지, 쿠키가 설정해야 URL에 플래그를 사용하여 다음 페이지로 리디렉션, 사용자가 쿠키를 사용 가능 여부를 테스트하거나하지 (쿠키를 설정하는 것이 좋습니다 것 쿠키가 있으면 다시 사용하십시오). 사용하지 않으려는 경우 사용을 권장하십시오.

+0

+1이 답변입니다. 무작위 생각 .. 당신은 트랜스 SID가 SSL과 함께 수용 가능할 수도 있다고 생각합니까? (쿼리 매개 변수가 ssl'ed 되었기 때문에)? – Ben

+0

@Ben 문제는 실제로 SSL이 부족하지 않다는 것입니다. 사용자가 URL에 세션이 포함되어 있고 trans-sid가 포함 된 URL을 친구에게 보냈다는 것을 이해하지 못합니다.링크를 클릭하면 친구로 로그인하게됩니다. –

+0

@Ben No. 문제는 * 가시성 *과 관련이 없습니다. 어떤 쿠키가 누군가를 가로채는 위치에 있다면 쿠키는 URL처럼 보이게됩니다. 문제는 브라우저 기록 등에서 URL을 공유하는 것입니다. – deceze

2

$_GET으로 사용자를 추적 할 수 있습니다.

사용자가 방문 할 때마다 단일 페이지에서 ?user_id=XYZ123을 전달한다고 가정하면 매우 유사한 서버 식별을 구현했을 것입니다. 그것은 분명 단점이있다 : 당신이 당신의 SESSION_ID을 멀리주지 URL을 붙여 복사/경우

  • 때문에 1 세션 하이 잭
  • 이 왜 더 적은 기술 Savy은입니다

    1. 을 사용자 쿠키를 비활성화 하시겠습니까?
      사용자는 제 1 자 쿠키와 제 3 자 쿠키를 모두 던져 버리는 경향이 있지만 다른 종류의 쿠키를 사용합니다.

      당사자 쿠키는 일반적으로 괜찮습니다. 페이스 북을 방문하면 페이스 북이 서버와의 상호 작용을 저장하기위한 쿠키를 유지할 것으로 예상됩니다.

      페이스 북과 이베이를 모두 추가 한 광고 회사가 쿠키를 다시 가져 와서 확인합니다.이 친구가 이베이에서 xyz를 찾고 있었기 때문에 지금 페이스 북에 있습니다. 그에게 abc를 보여주고 그를 사주는 등 ..

    1

    나는 당신이 당신의 서버가 SESSION_ID를 찾을 수없는 경우, 그는 세션을 복원 할 수 없습니다, 세션 참조 설명서 한마디로 http://www.php.net/manual/en/session.idpassing.php

    을 읽을한다고 생각합니다. 그러나 다른 방법을 사용하여 세션 값을 저장할 수 있습니다. 또는 사용자의 클라이언트 환경 매개 변수에서 session_od 기반을 생성 할 수 있습니다.

    관련 문제