program tip

쿠키와 세션은 무엇이며 서로 어떤 관련이 있습니까?

radiobox 2020. 12. 7. 08:00
반응형

쿠키와 세션은 무엇이며 서로 어떤 관련이 있습니까?


전문적으로 쿠키와 세션을 이해하려고 노력하고 있습니다. 브라우저가 서버에 연결될 때 서버는 클라이언트 브라우저 쿠키 폴더에 "phpsessid"가있는 쿠키를 "붙여 넣기"위해 브라우저에 "요청"합니다.

이제 "phpsessid"가 있으므로 클라이언트가 서버에 들어가면 브라우저가 "phpsessid"를 서버에 보내고 서버는 tmp 폴더를 살펴보고 일치하는 항목이 있으면 사용자가 가지고있는 모든 데이터를로드합니다. 이 클라이언트이지만 프로세스와 다소 혼란 스럽습니다.

세션과 쿠키를 만드는 과정을 이해하는 데 도움이 될 수 있다면 감사하겠습니다.


이것을 살펴 보자 :

쿠키 세션 은 브라우저가 수행하는 서로 다른 요청간에 애플리케이션의 상태를 보존하는 두 가지 방법입니다. 예를 들어, StackOverflow 에서 페이지를 요청할 때마다 로그인 할 필요가 없다는 것은 그들 덕분입니다.

쿠키

쿠키는 키 = 값 쌍으로 데이터를 보유하는 작은 데이터 비트 (최대 길이 4KB)입니다.

name=value; name2=value2

이것은 JavaScript 또는 HTTP 헤더를 사용하는 서버를 통해 설정됩니다 .

쿠키에는 만료 날짜 시간이 설정되어 있습니다 (예 : HTTP 헤더 사용).

Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT

그러면 브라우저가 name2이라는 이름의 쿠키를 설정하게 value2되며 약 9 년 후에 만료됩니다.

쿠키는 사용자가 콘텐츠를 쉽게 조작 할 수 있기 때문에 매우 안전하지 않은 것으로 간주 됩니다. 그렇기 때문에 항상 쿠키 데이터의 유효성을 검사 해야 합니다 . 쿠키에서 얻는 것이 반드시 기대 한 것이라고 가정하지 마십시오.

쿠키는 일반적으로 브라우저에서 사용자 이름과 특수 해시가 전송되는 로그인 상태를 유지하는 데 사용되며 서버는 액세스를 승인하기 위해 데이터베이스와 대조하여 확인합니다.

쿠키는 세션 생성 에도 자주 사용됩니다 .

세션

세션은 약간 다릅니다. 각 사용자는 쿠키 또는 GET 변수에 의해 유효성 검사를 위해 서버로 다시 전송되는 세션 ID를습니다 .

세션은 일반적으로 수명이 짧기 때문에 애플리케이션 간의 임시 상태를 저장하는 데 이상적입니다. 사용자가 브라우저를 닫으면 세션도 만료됩니다.

변수 자체가 서버에 유지되기 때문에 세션은 쿠키보다 더 안전한 것으로 간주됩니다 . 작동 방식은 다음과 같습니다.

  1. 서버가 세션을 엽니 다 (HTTP 헤더를 통해 쿠키 설정)
  2. 서버는 세션 변수를 설정합니다.
  3. 클라이언트 변경 페이지
  4. 클라이언트는 1 단계의 세션 ID와 함께 모든 쿠키를 보냅니다.
  5. 서버는 쿠키에서 세션 ID를 읽습니다.
  6. 서버는 데이터베이스 (또는 메모리 등)의 목록에서 세션 ID와 일치합니다.
  7. 서버는 일치하는 항목을 찾고 이제 $_SESSION수퍼 글로벌에서 사용할 수있는 변수를 읽습니다 .

PHP가 일치하는 항목을 찾지 못하면 새 세션을 시작하고 1-7 단계를 반복합니다.

민감한 정보는 서버에 보관되기 때문에 세션에 저장할 수 있지만 사용자가 안전하지 않은 Wi-Fi를 통해 로그인 한 경우 세션 ID가 여전히 도난 당할 수 있습니다. (공격자는 쿠키를 스니핑하고 자신의 것으로 설정할 수 있으며, 변수 자체는 볼 수 없지만 서버는 공격자를 사용자로 식별합니다).


그게 요점입니다. 두 주제에 대한 PHP 매뉴얼에서 더 많은 것을 배울 수 있습니다.

참고 URL : https://stackoverflow.com/questions/11142882/what-are-cookies-and-sessions-and-how-do-they-relate-to-each-other

반응형