CloudFront에서 쿠키 처리 정보
4129 단어 쿠키CloudFrontAWS
문서
기본
기본적으로 CloudFront는 쿠키를 고려하지 않습니다.
요청의
Cookie:
헤더는 오리진으로 전달되지 않습니다.응답의
Set-Cookie:
헤더는 뷰어에 전송되지 않는다.설정
비헤이비어에서 다음 중 하나를 선택할 수 있습니다.
이 설정은 다음 세 가지 동작에 영향을 미칩니다.
Cookie:
를 전송할지 여부 Cookie:
를 사용할지 여부 Set-Cookie:
를 뷰어로 전송할지 여부 문서를 읽어도 지금 정확히 몰랐기 때문에 실제로 설정하여 거동을 확인했다.
Cookie:
를 오리진으로 전송캐시 키에
Cookie:
Set-Cookie:
를 뷰어로None
하지 않는다
사용하지 않음
반환하지 않음
Whitelist
부분하다
일부 사용
모두 반환
모두
모두하다
모두 사용
모두 반환
기본적으로 상상대로인데, Whitelist의
Set-Cookie
의 취급만 예외적이며, 화이트리스트에 관계없이 모든 쿠키를 뷰어에 돌려준다.그래서 Whitelist로 제한하고 싶어도, 예를 들어 세션 ID가 캐시로 전달되어 버리는 것에 주의가 필요. 어떤 경우에는 매우 위험한 상태가 될 수 있습니다.
문서은 다음과 같이 쓰여져 있다.
화이트리스트에 없는 쿠키가 오리진의 응답에 포함되어 있으면 CloudFront는 쿠키도 뷰어에 반환합니다.
한편, 이하의 설명도 있어, 모순되고 있는 것처럼 보이지만,
오리진이 화이트리스트에 등록된 쿠키와 등록되지 않은 쿠키를 모두 반환하면 CloudFront는 화이트리스트에 등록된 쿠키만 캐시합니다.
이것은
Cookie:
를 캐시의 키에 사용할지 어떨지의 이야기가 섞여 있는 것이 아닐까 생각한다.자신이 시도한 한 CloudFront는
Set-Cookie:
헤더를 캐시합니다. X-Cache: Hit from cloudfront
응답에 화이트리스트에 있는지 여부에 관계없이 Set-Cookie:
헤더가 설정됩니다.이 문서 에도,
Set-Cookie – 쿠키를 전달하도록 CloudFront를 구성한 경우 Set-Cookie 헤더 필드가 클라이언트로 전달됩니다.
그리고 화이트리스트로 제한된다고는 적혀 있지 않다.
실험
이하
x_*
를 화이트리스트로 설정한 비헤이비어의 응답.$ curl -b 'x_1=1; a=1' -vvv 'https://...'
< HTTP/1.1 200 OK
< Content-Type: text/html
< Content-Length: 52
< Connection: keep-alive
< Date: Wed, 05 Jul 2017 07:35:49 GMT
< Server: nginx
< Set-Cookie: a=5; path=/
< Set-Cookie: b=6; path=/
< Age: 30
< X-Cache: Hit from cloudfront
< Via: 1.1 xxxxxxxxxxxxxxxx.cloudfront.net (CloudFront)
< X-Amz-Cf-Id: xxxxxxxxxxxxxxxxx
1499240149 array(1) {
["x_1"]=>
string(1) "1"
}
뷰어는
x_1
와 a
의 2 개의 쿠키를 송신하고 있어 오리진에는 x_1
만이 도착하고 있다.오리진은 화이트리스트에 포함되지 않은
a
와 b
의 두 쿠키를 반환하고 X-Cache: Hit from cloudfront
의 응답에 Set-Cookie
가 포함되어 있습니다.오리진에 넣은 PHP 소스.
<?php
setcookie('a', '5', 0, '/');
setcookie('b', '6', 0, '/');
echo time();
echo ' ';
var_dump($_COOKIE);
Reference
이 문제에 관하여(CloudFront에서 쿠키 처리 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koseki/items/41c777194bc89d68f15f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)