it-swarm-ko.tech

Pressflow Drupal 사이트는 사용자 쿠키를 어떻게 처리합니까?

Drupal이 처리 한 것입니까? 어떤 PHP, Apache, Varnish 설정이 쿠키에 영향을 줍니까?

또한 일반 바닐라 Drupal와 Pressflow 사이의 쿠키 처리의 차이점은 무엇입니까?

drupal_session_commit() boostrap.inc에서 session_destroy () 호출에서

session_destroy()은 현재 세션과 관련된 모든 데이터를 삭제합니다. 세션과 연관된 전역 변수를 설정 해제하거나 세션 쿠키를 설정 해제하지 않습니다. 세션 변수를 다시 사용하려면 session_start()을 호출해야합니다.

사용자를 로그 아웃하는 것처럼 세션을 완전히 종료하려면 세션 ID도 설정 해제해야합니다. 쿠키가 세션 ID를 전파하는 데 사용되는 경우 (기본 동작) 세션 쿠키를 삭제해야합니다. 이를 위해 setcookie()을 사용할 수 있습니다.

분명히 Pressflow에서 drupal_session_commit ()은 다음과 같이 모든 페이지에서 호출됩니다.

// Perform end-of-request tasks on every page.
drupal_page_footer(), common.inc
    // Write the session, and open one if needed.
    drupal_session_commit(), bootstrap.inc
        // If our user is anonymous, Pressflow "Destroys empty anonymous sessions"
        // Destroy all data registered to a session
        session_destroy(); 
            // Called by PHP session handling with the PHP session ID to end a user's session.
            sess_destroy_sid($sid), session.inc

Omniture 및 Google Analytics와 같은 소프트웨어에서 사용자 추적에 어떤 영향이 있습니까?

쿠키 관련 게시물을 참조하십시오 : https://stackoverflow.com/questions/871283/how-do-tracking-cookies-work

Link Pressflow 문서로.

5
amateur barista

쿠키/세션은 Drupal 및 PHP 둘 다에 의해 처리됩니다. Drupal 특정 일을 할 때 PHP PHP 대부분의 기본 작업을 처리하고 Drupal 일부를 무시하고, 사용자 세션을 데이터베이스에 저장합니다.).

Omniture에 익숙하지 않지만 GA와 같은 경우 사용자 세션/쿠키는 추적에 전혀 영향을 미치지 않습니다. 쿠키는 사용자를 식별하는 데 사용되므로 모든 페이지에서 사용자 이름/암호를 입력 할 필요가 없습니다. 쿠키가 없으면 Drupal는 사용자에게 구별 할 수 없으며 모든 새 페이지로드에 대한 로그인과 같은 다른 형태의 식별이 필요합니다.

그렇기 때문에 일부 사람들은 쿠키를 훔치려 고 시도합니다. 도둑이 완전히 액세스 할 수 있다면 사용자가 로그인하여 컴퓨터를 떠나는 것과 같습니다.

3
googletorp

1) Drupal이 처리 한 것입니까?

Drupal은 쿠키를 처리하지만 자체 자사 쿠키 만 처리합니다. @googletorp가 말했듯이 Omniture와 Google Analytics는 자체 쿠키를 사용합니다.

2) 무엇 PHP 설정이 쿠키에 영향을 줍니까?

boostrap.inc의 drupal_session_initialize()session_set_save_handler()을 호출하여 Drupal과 함께 PHP의 기본 세션 처리 기능을 재정의합니다.

Pressflow에서 모든 페이지 끝에서 drupal_page_footer()이 호출됩니다. 이 코드는 사용자가 익명 인 경우 Pressflow가 데이터베이스에서 현재 세션 ID를 삭제하고 설정된 쿠키를 비운다는 것을 보여줍니다. session.inc의 sess_destroy_sid()을 (를) 참조하십시오.

) 어떤 광택 설정이 쿠키에 영향을 줍니까?

통계는 하드 코딩 된 이미지 요청 (웹 비콘)을 사용하여 생성되므로 Google 웹 로그 분석과 Omniture 모두 쿠키없이 방문자 통계를 생성 할 수 있습니다. 그러나 영구 통계 (x 사용자가 내 페이지를 방문하는 빈도)를 추적하기 위해 Omniture는 고유 한 사용자 ID로 쿠키를 발행합니다.-그리고 해당 사용자가 내 페이지에서 그는 그 쿠키를 제시하고 "OK, 사용자 x는 이번 주에 두 번째로, 이번 달에 세 번째로 나를 방문했습니다."라고 말할 수 있습니다. 이것은 사용자 컴퓨터에 실제로 저장된 파일 인 영구 쿠키를 사용하여 수행됩니다.

Varnish의 문제점은 요청에 쿠키가 첨부 된 경우 Varnish는 캐시 된 페이지를 제공하지 않음이기 때문에 일반적으로 요청에서 쿠키를 제거하도록 설정되어 있다는 것입니다. Omniture는 모든 사용자에 대해 이러한 쿠키를 설정하므로 요청에서 Omniture 쿠키를 제거하지 않으면 Varnish는 캐시 된 페이지를 제공하지 않습니다.

따라서 지속적인 통계를 추적하거나 쿠키를 통해 해당 쿠키를 전달할 수있는 방법을 찾았지만 아직 들어 보지 못한 캐시 된 페이지를 제공 할 수 있습니다.

1
amateur barista

실제 답변은 Google Analytics와 Omniture가 특정 쿠키 (Drupal에서 사용하는 쿠키가 아님)를 사용하고 Drupal 세션과는 독립적으로 추적을 수행한다는 것입니다.

Pressflow에서 Drupal 7 (그리고 나중에 Drupal 6)으로 백 포트 된)에 의해 도입 된 새로운 세션 핸들러는 Google Analytics 또는 Omniture 사용자 추적을 방해하지 않습니다.

같은 이유로, 바니시에서 쿠키를 제거해도 사용자 추적을 방해하지 않습니다.

0
Damien Tournoud

모든 구성 요소는 서로 다른 수준에서 사용자 쿠키를 처리합니다.

웹 브라우저는 쿠키를 설정하고 도메인 기준과 만료 날짜 (HTTP 헤더의 기준)를 기반으로 다음 요청에 쿠키가 전달되도록합니다.

Drupal은 PHP ( setcookie / session_destroy ) 기능을 수행하고 사용자를 인증합니다.

Varnish는 들어오는 요청을 구문 분석하고 페이지를 캐시할지 여부를 결정하며 Drupal 알 필요가없는 다른 모든 쿠키를 유지, 수정 또는 삭제하는 논리를 가질 수 있음) 구성 Drupal with Varnish )의 결과로 니스 논리 (.vcl 파일 구성) :

  1. 쿠키 문자열 앞에 세미콜론을 추가하십시오.
  2. 세미콜론 뒤에 나오는 공백을 모두 제거하십시오.
  3. 이전에 제거한 공간을 추가하여 유지하려는 쿠키를 일치시킵니다. (\ 1)은 (는) Regsuball에서 처음으로 일치하는 그룹입니다.
  4. 앞의 세미콜론 뒤에 공백이 없다는 사실로 식별하여 다른 쿠키를 모두 제거하십시오.
  5. 쿠키 문자열의 시작과 끝에서 모든 공백과 세미콜론을 제거하십시오.
  6. 남은 쿠키가 없으면 쿠키 헤더를 제거하십시오. 쿠키 헤더가 없으면 Varnish의 기본 동작은 페이지를 캐시하는 것입니다.
0
kenorb