2009-05-17 1 views
1

두 가지 유형의 사용자가 내 웹 사이트를 방문합니다. 등록 된 사용자와 손님입니다. 등록 된 사용자는 PHP 세션, 쿠키 및 개별 로그인에 의해 추적되고 보존됩니다. 손님은 관리하기가 더 까다 롭습니다. 따라서 콘텐츠에 기여할 권한이 거의 없습니다.PHP의 반환 "익명"손님을 결정하는 방법

즐겨 찾기, 장바구니, 설문 조사 투표, 검토, 태그 지정, 업로드 및 댓글을 남기려면 (등록 여부와 관계없이) 사용자 편집을 열고 싶습니다. 동시에 등록되지 않은 다른 사용자로부터 데이터를 보호하십시오.

다른 방문자의 순 방문자를 결정하기위한 몇 가지 옵션 또는 모범 사례와 더 많은 기여를 허용 할 때 고려해야 할 보안 조치에는 어떤 것이 있습니까? 보안/제한 설정을 통해 기고금 서비스를 제공해야합니까? 아니면 중간에 만나서 쿠키 등을 허용하도록 설정을 완화해야합니까?

IP 주소 - IP는 옵션이지만 임시적인 것입니다. 그것은 다른 IP로 자신의 인터넷에 다시 연결하는 사용자를 위해 바뀔 수 있으며, 다른 사용자는 결국 동일한 IP를 공유 할 수 있습니다. IP는 익명 성, 공유 성 또는 오해의 소지가있을 수도 있습니다.

PHP 세션 - 세션에 대해 확인하고 (사용하도록 설정된 경우) 브라우저를 닫을 때 확인이 가능합니다.

쿠키 - 세션 데이터를 저장할 수는 있지만 클라이언트 측에서 쉽게 (그리고 종종) 비활성화됩니다.

헤더 데이터 - 자신의 알려진 정보를 결합하는 사용자 수도 적어도 그룹 사용자 - ISP, 브라우저, 운영 체제, 참조 웹 사이트 등

편집 : 나는 아직도 주위에 내 머리를 얻는 데 문제가 우리가 손님을 위해 쿠키를 만들었습니다. 해당 세션에 일련의 편집 및 사용자 기록을 첨부하십시오. 쿠키가 제거되면 데이터가 아무 것도 붙이지 않고 떠 다니고 사용자는 데이터를 잃어 버립니다. 또는 사용자가 로그인하면 게스트와 사용자 데이터가 병합되어야합니다 ...

+0

"세션 데이터를 저장할 수는 있지만 쉽게 (그리고 종종) 클라이언트 쪽에서 사용할 수 없습니다." 나는 정중하게 일반 사이트 방문자가 쿠키가 무엇인지 안다는 것에 정중히 동의합니다. 사용 된 서버 또는 뭔가를 판매하지 않는 한 –

답변

3

100 % 확실한 요청이 유일한 방법이기 때문에 쿠키가 아마도 가장 좋은 옵션 일 것입니다. 물론 믹스를 추가 할 수 있습니다. 쿠키가 비활성화 된 경우 IP 주소 방법과 같은 다른 식별 옵션을 시도 할 수는 있지만 지나치게 복잡하게 만들 수 있습니다.

당신이 말했듯이 IP 주소는 변경되기 쉽고 일부 조직에서는 요청을 다른 IP에서 시작하는 프록시 서버 설정 그룹이있을 수 있습니다. 물론 X_FORWARDED_FOR을 확인할 수는 있지만 여전히 변경 될 수 있습니다.

헤더 데이터는 아마도 내가 생각하기에 좋은 결과를 얻기가 어려울 것입니다. 동일한 브라우저, OS, IP를 가진 조직이 있다면 사람들에게 동일한 것으로 보여 줄 것입니다. 동일한 조직에 속하지 않은 사람들도 여전히 유사하게 보일 수 있습니다 (즉, 트래픽을 프록시 서버를 통해 라우팅하는 AOL 사용자, 대다수는 비슷한 헤더를 제공하는 'AOL 브라우저'를 사용하고있을 것입니다).

두 가지 옵션 중에서 IP는 구현하기 쉽지만 분명히 내가 설명한 문제가 있습니다. 헤더에서 고유 한 데이터를 확인하는 것은 필자가 생각하기에 절대적인 고통이 될 것입니다.

분명히 말하듯이 브라우저를 닫을 때 세션이 손실되며 시스템이 등록 된 사용자처럼 행동하여 쿠키가 더 분명한 선택 인 것 같습니다 (특히 '즐겨 찾기'를 영속적이어야한다).

+1

관련하여, 검은 모자를 쓰고 싶다면 https://panopticlick.eff.org/ (하지만 나는 동의한다, 과자는 응답이다). – mlissner

1

난 그냥 세션으로 갈 것입니다.

사용자가 IP 주소를 변경하거나 (NAT 및 프록시 뒤에서 혼란하기 쉬운) 쿠키를 수정/삭제하거나 (확실하게 가능) 헤더를 쉽게 변경할 수 있습니다 (전환 브라우저를 통해 쉽게).

게스트를 식별하고 싶지 않은 경우 안전하게 식별 할 수있는 방법이 없습니다. 그냥 표준 쿠키/세션으로 이동하십시오.

1

세션을 사용해야합니다. 세션 ID는 쿠키에 저장됩니다 (또는 PHPSID 인수로 URL에 저장된 쿠키를 허용하지 않는 사용자의 경우) 사용자가 브라우저를 닫을 때 지워지지 않고 설정하는 방법에 따라 달라집니다 세션/쿠키 옵션. 세션의 유효 기간을 원하는대로 설정할 수 있으므로 걱정하지 마십시오. 쿠키에 대해 사용자에게도 알려야합니다. 로그인 할 때 병합 할 수있는 데이터와 관련하여 적절한 방법으로 병합하거나 옵션을 저장할 것인지 묻습니다. 아니.