Skip to content

Latest commit

 

History

History
326 lines (232 loc) · 18.1 KB

11_Client_Identification_and_Cookies.md

File metadata and controls

326 lines (232 loc) · 18.1 KB

11장 🐙 클라이언트 식별과 쿠키

11.1   개별 접촉  kukim

  1. HTTP 트랜잭션은 상태가 없다. (O/X)
  2. 다음 중 사용자 식별 기술 중 아닌 것은?
  • a. 사용자 식별 관련 정보를 전달하는 HTTP 헤더들
  • b. 클라이언트 IP 주소 추적으로 알아낸 IP 주소로 사용자를 식별
  • c. 사용자 로그인 인증을 통한 시용자 식별
  • d. URL에 식별자를 포함하는 기술인 뚱뚱한(fat)URL
  • e. 식별 정보를 지속해서 유지하는 강력하면서도 효율적 인 기술인 쿠키
📄 답지
  1. HTTP 트랜잭션은 상태가 없다. (O/X) : 정답 , O
  2. 다음 중 용자 식별 기술 중 아닌 것은?
  • a. 사용자 식별 관련 정보를 전달하는 HTTP 헤더들
  • b. 클라이언트 IP 주소 추적으로 알아낸 IP 주소로 사용자를 식별
  • c. 사용자 로그인 인증을 통한 시용자 식별
  • d. URL에 식별자를 포함하는 기술인 뚱뚱한(fat)URL
  • e. 식별 정보를 지속해서 유지하는 강력하면서도 효율적 인 기술인 쿠키
  • 정답 : 없음

11.2   HTTP 헤더  kukim

  1. 괄호를 채우면 당신은 똑똑이
헤더이름 헤더 타입 설명
User-Agent 요청 ( a )
( b ) 요청 사용자가 현재 링크를 타고 온 근원 페이지
From 요청 ( c )
📄 답지
  1. 괄호를 채우면 당신은 똑똑이
헤더이름 헤더 타입 설명
User-Agent 요청 ( a )
( b ) 요청 사용자가 현재 링크를 타고 온 근원 페이지
From 요청 ( c )
  • 정답
  • a) 사용자의 브라우저
  • b) Referer
  • c) 사용자의 이메일 주소

11.3   클라이언트 IP 주소  junslee

  1. 클라이언트의 IP주소는 보통 HTTP헤더에 포함된다. (오 / 엑스)
  2. 웹 서버는 HTTP요청을 보내는 반대쪽 TCP커넥션의 IP주소를 알아 낼 수 있다. (오 / 엑스)
  3. 다음의 각 상황에서 클라이언트의 IP주소로 사용자를 식별하는 방식이 무용지물이 되는 이유를 서술하세용.
  • mihykim, yeosong, yeha, jehong은 돈을모아 컴퓨터를 사서 같은 컴퓨터로 각자 인터넷을 사용한다.

  • ISP의 DHCP서버는 사용자가 로그인하면 IP주소를 동적으로 할당한다.

  • 많은 사용자가 보안을 강화하기 위해 네트워크 주소 변환 방화벽을 통해 인터넷을 사용한다.

📄 답지
  1. 클라이언트의 IP주소는 보통 HTTP헤더에 포함된다. (X) => 클라이언트의 ip주소는 보통 http헤더에 없다.
  2. 웹 서버는 HTTP요청을 보내는 반대쪽 TCP커넥션의 IP주소를 알아 낼 수 있다. (O)
  3. p.300참고하시면 됩니다!!

11.4   사용자 로그인  junslee

1.웹 서버는 사용자가 로그인할 것을 요구하여 사용자에게 명시적으로 식별 요청을 할 수 있다. 다음은 서버가 클라이언트 식별하는과정을 순서대로 기술한 것이다. 빈칸을 채워주세용(중복 X).

  • 클라이언트가 특정 웹 사이트로 요청한다.
  • 서버에서 사용자가 로그인 하기를 원한다면 HTTP ______________ 응답코드와 _________________헤더를 클라이언트에 보낸다.
  • 브라우저는 사용자에게 로그인 창을 보여준다.
  • 로그인 후 다음 요청부터 _____________헤더에 그 정보를 기술한다.(서버가 사용자의 식별정보를 안다.)
  • 세션이 진행되는 내내 그 사용자에 대한 식별을 유지한다.
📄 답지
  1. 401 Login Required, WWW-Authenticate, Authorization 참고 p.302, p.303

11.5   뚱뚱한 URL  junslee

  1. 사용자의 상태정보를 포함하고 있는 URL을 __________이라고 한다.
  2. 서버가 뚱뚱한 URL을 포함한 요청을 받으면 서버는 밖으로 향하는 모든 하이퍼링크를 __________로 바꾼다.
  3. 뚱뚱한 URL은 사이트를 브라우징 하는 사용자를 식별하기는 어렵다. (오 / 엑스)
  4. 뚱뚱한 URL은 여러 심각한 문제가 있다고 한다.
    4-1. 뚱뚱한 URL은 못생겼다. (오 / 엑스)
    4-2. 뚱뚱한 URL은 공유하지 못한다. (오 / 엑스)
    4-3. 뚱뚱한 URL은 서버 부하를 가중시킨다. (오 / 엑스)
    4-4. 뚱뚱한 URL은 로그아웃해도 모든 정보를 기억해 놓는다. (오 / 엑스)
📄 답지
  1. 뚱뚱한 URL
  2. 뚱뚱한 URL
  3. X -> 뚱뚱한 URL은 사이트를 브라우징하는 사용자를 식별하는데 사용된다. 4-1. 뚱뚱한 URL은 못생겼다. 새로운 사용자들에게 혼란을 줄 수있다. 못생김->혼란(??) 4-2. 뚱뚱한 URL은 공유하지 못한다. 누적된 개인정보를 공유하게 되는 것이기 때문에 4-3. 뚱뚱한 URL은 서버 부하를 가중시킨다. 서버는 URL에 해당하는 HTML페이지를 다시 그려야하기 때문이다. 4_4. 사용자가 특정 뚱뚱이URL을 북마킹하지 않는 이상, 로그아웃하면 모든 정보를 잃는다.

11.6.1 - 11.6.4 쿠키(1)  mihykim

  • 다음은 쿠키 몸풀기 OX문제입니다.
    • 쿠키는 넷스케이프가 최초로 개발했지만 지금은 모든 브라우저에서 지원한다. (O / X)
    • 쿠키는 사용자를 식별하고 세션을 유지하는 한가지 방식일 뿐 모든 브라우저가 쿠키 정보를 저장할 책임이 있는 것은 아니다. (O / X)
  • 다음은 "쿠키의 두 가지 타입"에 대한 설명입니다. 빈 칸을 채워주세요
    • 브라우저를 닫으면 삭제되는 임시쿠키는 _______________라고 한다.
    • 반대로, 디스크에 저장되어 브라우저를 닫아도 남아있어 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하기 위해 사용되는 쿠키를 _______________라고 한다.
    • Expires 혹은 Max-Age 파라미터가 없으면 _______________이다.
  • 다음은 "쿠키의 동작"에 대한 설명입니다. 빈칸에 들어갈 알맞은 답을 보기에서 골라주세요 (중복 허용)
    • <보기>
      스낵(Snack), 상태(State), 프락시, 캐시, 브라우저, 서버, Cookie, Set-Cookie, domain, path,
      쿠킴 데이터베이스, 쿠키 데이터베이스, 즐겨찾는 사이트, 유효한 사이트, 구워준 요리사, 생성한 서버
    • 쿠키는 일종의 _______________정보라고 할 수 있으며, _______________가 생성하여 _______________에게 _______________헤더를 통해 전달한다.
    • 이 때 서버는 _______________속성을 기술해서 어떤 사이트가 그 쿠키를 읽을 수 있는지 제어할 수 있다.
    • _______________는 그 쿠키를 _______________에 저장한다.
    • 사용자가 미래에 같은 사이트를 방문할 경우에 해당 사이트는 _______________이므로 쿠키가 _______________측으로 다시 전달된다. 보통 쿠키는 쿠키를 _______________에게만 전달된다.
  • 🍪먼저 다푸신 분을 위한 읽을거리
📄 답지
  • 다음은 쿠키 몸풀기 OX문제입니다.
    • 쿠키는 넷스케이프가 최초로 개발했지만 지금은 모든 브라우저에서 지원한다.(O)
    • 쿠키는 사용자를 식별하고 세션을 유지하는 한가지 방식일 뿐 모든 브라우저가 쿠키 정보를 저장할 책임이 있는 것은 아니다(X)
      • 쿠키는 사용자를 식별하고 세션을 유지하는 방식 중에서 현재까지 가장 널리 사용되는 방식으로, 앞서 설명한 기술들이 가지고 있던 문제점들을 겪지 않을 수 있다.
      • 브라우저는 쿠키 정보를 저장할 책임이 있는데, 이 시스템을 '클라이언트 측 상태'라고 한다.쿠키 명세에서는 이것을 'HTTP 상태관리체계(HTTP State Management Mechanism)'라고 한다. (RFC 6265)
  • 다음은 "쿠키의 두 가지 타입"에 대한 설명입니다. 빈 칸을 채워주세요
    • 브라우저를 닫으면 삭제되는 임시쿠키는 세션쿠키(session cookie)라고 한다.
    • 반대로, 디스크에 저장되어 브라우저를 닫아도 남아있어 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하기 위해 사용되는 쿠키를 지속쿠키(persistent cookie)라고 한다.
    • Expires 혹은 Max-Age 파라미터가 없으면 세션쿠키이다.
  • 다음은 "쿠키의 동작"에 대한 설명입니다. 빈칸에 들어갈 알맞은 답을 보기에서 골라주세요 (중복 허용)
    • <보기>
      스낵(Snack), 상태(State), 프락시, 캐시, 브라우저, 서버, Cookie, Set-Cookie, domain, path,
      쿠킴 데이터베이스, 쿠키 데이터베이스, 즐겨찾는 사이트, 유효한 사이트, 구워준 요리사, 생성한 서버
    • 쿠키는 일종의 상태(State)정보라고 할 수 있으며, 서버가 생성하여 브라우저에게 Set-Cookie헤더를 통해 전달한다.
    • 이 때 서버는 domain속성을 기술해서 어떤 사이트가 그 쿠키를 읽을 수 있는지 제어할 수 있다.
    • 브라우저는 그 쿠키를 쿠키 데이터베이스에 저장한다.
    • 사용자가 미래에 같은 사이트를 방문할 경우에 해당 사이트는 유효한 사이트이므로 쿠키가 서버측으로 다시 전달된다. 보통 쿠키는 쿠키를 생성한 서버에게만 전달된다.

11.6.5 - 11.6.7 쿠키(2)  daelee

  1. 현재 사용되는 쿠키 명세에는 넷스케이프가 최초로 정의한 Version 0 쿠키와, 그것의 확장으로 더 널리 사용되고있는 Version 1 쿠키가 있다. (O / X)

  2. 아래 보기는 Version 0 쿠키의 Set-Cookie 응답 헤더를 조작하기 위한 필드들이다. 올바른 형태로 Set-Cookie 헤더를 기술하시오.

    보기 : ( domain=domain, name=value, secure, path=path, expires=date )

    Set-Cookie: __(a)__ ; __(b)__ ; __(c)__ ; __(d)__ ; __(e)__

  3. Version 0 쿠키에서, 모든 쿠기는 Cookie 요청 헤더에 한데 이어 붙여 보낸다. (O / X)

  4. Version 1(RFC2965) 쿠키는 Set-Cookie2 헤더와 Cookie2 헤더를 사용하며, Version 0 시스템과 호환되지 않는다. (O / X)

📄 답지
  1. 현재 사용되는 쿠키 명세에는 넷스케이프가 최초로 정의한 Version 0 쿠키와, 그것의 확장으로 더 널리 사용되고있는 Version 1 쿠키가 있다. (O / X)

    정답 : X

    version 1 쿠키(RFC2965)는 Version 0 쿠키의 확장이지만 널리 쓰이지는 않는다. version 1 쿠키는 2011년에 나온 RFC6265 "HTTP State Management Mechanism"에 의해 폐기되었다.

    RFC6265와 표준 스펙 문서화

    쿠키의 역사

    기나긴 우여곡절 끝에 HTML5 시대가 도래했고, 새로운 스펙을 강제하는 것을 포기한 RFC6265가 2011년에 발표되었습니다. RFC6265는 이전 시도들과는 달리 새로운 기능을 제시하기보다는 상용화되어있던 브라우저와 웹 서버들의 관행을 문서화하는 데에 집중했습니다. 새로운 시스템들이 현 웹 환경에 맞게 개발될 수 있도록 가이드를 한 것입니다. RFC6265는 현실과 가장 부합하는 HTTP 표준으로 생각되고 있으며 현재 많은 애플리케이션들과 브라우저들이 RFC6265를 받아들이고 있는 상태입니다.

    현재는 아직도 넷스케이프가 제시한 V0의 쿠키들이 굉장히 많이 사용되고 있지만, 점점 기술 표준은 RFC6265를 향해 변화해 가고 있습니다. 많은 개발자들의 애플리케이션을 지탱하고 있는 톰캣과 같은 소프트웨어가 RFC6265를 점차 기본값으로 채택함에 따라 레거시 스펙의 HTTP 쿠키와 RFC6265 스펙의 쿠키의 차이점에 대해 아는 것이 미래에 큰 도움이 될 것이라 생각합니다.

    출처

  2. 아래 보기는 Version 0 쿠키의 Set-Cookie 응답 헤더를 조작하기 위한 필드들이다. 올바른 형태로 Set-Cookie 헤더를 기술하시오.

    보기 : ( domain=domain, name=value, secure, path=path, expires=date )

    Set-Cookie: __(a)__ ; __(b)__ ; __(c)__ ; __(d)__ ; __(e)__

    정답:

    Set-Cookie: name=value [; expire=date] [; path=path] [; domain=domain] [;secure]

    예시:

    Set-Cookie: private_id=taelee; expire=Wednesday, 23-Nov-20 23:12:40 GMT; domain="yebalja.com"; path=/admin; secure
    • Secure 속성이 포함되어 있으면, 쿠키는 HTTP가 SSL 연결을 사용할 때만 쿠키를 전송한다.
  3. Version 0 쿠키에서, 모든 쿠기는 Cookie 요청 헤더에 한데 이어 붙여 보낸다. (O / X)

    정답: O

    클라이언트가 서버에 요청을 보낼 때는, Domain, Path, Secure 필터들이 현재 요청하려고 하는 사이트에 들어맞으면서 아직 파기되지 않은 쿠키들을 함께 보낸다. 모든 쿠키는 Cookie 헤더에 이어 붙여 보낸다.

  4. Version 1(RFC2965) 쿠키는 Set-Cookie2 헤더와 Cookie2 헤더를 사용하며, Version 0 시스템과 호환되지 않는다. (O / X)

    정답: X

    version 0 시스템과도 호환된다. 그러나 2011년부터 폐기되어 더이상 사용되지 않음.

    Version 0,1 쿠키 vs RFC6265 쿠키

    쿠키 버전 속성 Set-cookie 헤더 만료 메커니즘 도메인 속성 쿠키 name,value 제한사항 쿠키값
    레거시 Version=0, 1 Set-cookie, Set-cookie2 max-age, expires 혼용 .으로 시작 name,value 모두 HTTP/1.1 token형식 name=이후의 token형식 value 또는 "로 감싸진 값
    RFC6265 사용하지 않음 Set-cookie max-age가 있을 경우 expires 무시 .으로 시작하지 않음 name만 HTTP/1.1 token 형식 =와 첫 ;사이의 문자

    출처 및 보다 자세한 내용


11.6.8 - 11.6.10 쿠키(3) secho

  • 1번. 쿠키는 웹 사이트의 사용자를 추적하는데 사용한다. 다음은 amazon.com에 방문하는 과정을 나타낸다. 해당 그림에서 서버는 어떤 종류의 쿠키를 기술하여 응답했는가?

    image


    2번. 쿠키정보를 캐싱하는 것은 주의해야할 사항이다.(O X)


    3번. Set-Cookie헤더를 제외하고 다른 문서들은 캐시해도된다고 할 때 다음 빈칸에 적절한 옵션을 채우세요.

    Cache-Control : "_ _ - _ _ _ _ " = " _ _ _ - _ _ _ _ _ _"


    4번. 보기를 보고 알맞은 답을 작성하세요.

    키, 디스크, 값, 클라우드, 원격DB, 캐시, 쿠킴, 쿠키

    클라이언트 - 서버간 예민한 데이터가 오가는 것을 줄일 수 있다. 개인정보를 _____에 저장하고 데이터의 _____값만 ____에 설정하는 방식이다.


    5번. 쿠키를 사용해 시스템의 취약부분을 손상시키거나 스누핑할 수 있다. (O / X)

📄 답지

1번. 쿠키는 웹 사이트의 사용자를 추적하는데 사용한다. 다음은 amazon.com에 방문하는 과정을 나타낸다. 해당 그림에서 서버는 어떤 종류의 쿠키를 기술하여 응답했는가?

image

  • 정답 : 세션 쿠키

2번. 쿠키정보를 캐싱하는 것은 주의해야할 사항이다.(O X)

  • O - 개인정보를 남에게 노출시킬 수도 있기 때문.

3번. Set-Cookie헤더를 제외하고 다른 문서들은 캐시해도된다고 할 때 다음 빈칸에 적절한 옵션을 채우세요.

Cache-Control : "_ _ - _ _ _ _ " = " _ _ _ - _ _ _ _ _ _"

  • 정답 no-cache , Set-Cookie
  • 캐시를 해도되는문서에 Cache-Control:public를 표시하면 웹 대역폭을 절약할 수 있다고함.

4번. 보기를 보고 알맞은 답을 작성하세요.

키, 디스크, 값, 클라우드, 원격DB, 캐시, 쿠킴, 쿠키

클라이언트 - 서버간 예민한 데이터가 오가는 것을 줄일 수 있다. 그 방법은 쿠키를 쓰지않는 것인데 개인정보를 _____에 저장하고 데이터의 _____값만 ____에 설정하는 방식이다.

  • 정답: 원격 DB, 키, 쿠키

5번. 쿠키를 사용해 시스템의 취약부분을 손상시키거나 스누핑할 수 있다. (O / X)

  • X 근본적으로 있을 수 없는 일임. 쿠키의 위험성이 과대평가 되었다고함.