2013-08-23 2 views
3

쿠키에 데이터를 저장하는 데는 두 가지 방법이 있습니다. 한 가지 방법은 모든 데이터에 대해 하나의 쿠키를 사용하여 JSON 문자열로 저장하는 것입니다.쿠키에 대한 유용한 정보

다른 방법은 각 데이터 조각마다 다른 쿠키를 사용하는 것입니다.

첫 번째 접근법에서 볼 수있는 네거티브는 쿠키의 여분의 JSON 문자로 인해 헤더에서 더 많은 공간을 차지한다는 것입니다. 또한 약간의 처리 시간이 소요될 JSON을 구문 분석하고 문자열을 사용해야합니다. 긍정적 인 점은 하나의 쿠키 만 사용된다는 것입니다. 실종 된 다른 긍정적 인 점이 있습니까?

두 번째 접근법에서 볼 수있는 부정적인 점은 더 많은 쿠키 키 값 쌍이 사용된다는 것입니다.

약 15-20 개의 쿠키가 저장됩니다. 만료 날짜는 각 쿠키에 대해 동일합니다.

도메인 당 최대 쿠키 수는 약 4000 개입니다. 아직 그 번호에 근접하지는 않습니다.

내가 간과하는 문제가 있습니까? 어떤 접근 방식이 가장 좋을까요?

편집 -이 쿠키는 JavaScript에 의해 관리됩니다.

+1

쿠키를 모두 사용하지 않고 로컬 저장소를 사용합니다. 왜 그런 짓을하고 싶지 않는거야? 개체를 serialize/deserialize하는 방법을 비롯한 예제는 [here] (http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage)를 참조하십시오. –

+0

@TimMedora 쿠키는 sessionId 및 visitorId의 쿠키입니다. 우리가 사용하는 몇 가지 분석 공급 업체가 있으며 ID를 동기화해야합니다. – sissonb

답변

6

쿠키를 사용하는 사용자에게 저장 용 데이터를 배포하는 경우 데이터를 암호화하거나 서명해야합니다.

데이터가 변조되지 않도록 보호해야합니다.

이 시점에서 크기 고려 사항은 해제되어 있으므로 (패딩 때문에) JSON 구문 분석의 성능 오버 헤드 (암호화로 인해 상당한 오버 헤드가 발생 함)가 발생합니다.


결론 : 서명베이스 64로 인코딩하고, 하나의 쿠키에 저장, (그것을 암호화), JSON으로 데이터를 저장합니다. 은 쿠키의 최대 크기 (및 4K)가입니다.

참조 : 수많은 다른 프레임 워크와 응용 프로그램 중에서 이것은 what Rails does입니다.

+0

쿠키가 클라이언트 측에서 관리되는 경우 데이터를 안전하게 암호화 할 수 있습니까? – sissonb

+1

쿠키를 안전하게 유지하는 것은 응용 프로그램의 작업이 아니라 브라우저의 작업입니다 –

0

쿠키의 모범 사례는 쿠키의 사용을 최소화하는 것입니다. 예를 들어 세션 ID를 기억하도록 쿠키 사용을 제한 한 다음 데이터를 서버 측에 저장하십시오.

EU에서는 쿠키가 법적 규정의 적용을받으며 거의 ​​모든 세션 쿠키에 쿠키를 사용하지만 세션 ID는 고객의 명시적인 동의가 필요합니다.

관련 문제