[javascript] 브라우저에서 모든 쿠키를 가져와야합니다

JavaScript를 사용하여 브라우저에 저장된 모든 쿠키 를 가져와야합니다. 어떻게 할 수 있습니까?



답변

특정 사이트의 쿠키에만 액세스 할 수 있습니다. 를 사용 document.cookie하면 세미콜론으로 구분 된 이스케이프 된 키 = 값 쌍 목록을 얻을 수 있습니다.

secret=do%20not%20tell%you;last_visit=1225445171794

액세스를 단순화하려면 문자열을 구문 분석하고 모든 항목을 이스케이프 해제해야합니다.

var getCookies = function(){
  var pairs = document.cookie.split(";");
  var cookies = {};
  for (var i=0; i<pairs.length; i++){
    var pair = pairs[i].split("=");
    cookies[(pair[0]+'').trim()] = unescape(pair.slice(1).join('='));
  }
  return cookies;
}

따라서 나중에 다음과 같이 작성할 수 있습니다.

var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"


답변

  1. 다른 사이트의 쿠키는 볼 수 없습니다.
  2. HttpOnly쿠키를 볼 수 없습니다 .
  3. 볼 수있는 모든 쿠키 document.cookie세미콜론으로 구분name=value쌍 목록 이 포함 된 속성에 있습니다 .

답변

당신은 할 수 없습니다. 설계 상 보안을 위해 사이트에서 설정 한 쿠키에만 액세스 할 수 있습니다. StackOverflow는 UserVoice에서 설정 한 쿠키 나 Amazon에서 설정 한 쿠키를 볼 수 없습니다.


답변

브라우저에 열려있는 현재 문서에 대한 모든 쿠키를 검색하려면 document.cookie속성 을 다시 사용합니다 .


답변

현대적인 접근.

let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});

console.log(c);

😉


답변

제목에 프로그래밍 방식이어야 함을 명시하지 않았기 때문에 이것이 진정한 디버깅 / 개인 정보 관리 문제였으며 해결책은 브라우저에 따라 다르며 자세한 쿠키 관리 요금 및 / 또는 디버깅 모듈이 내장 된 브라우저가 필요하다고 가정하겠습니다. 플러그인 / 확장. 나는 하나를 나열하고 다른 사람들에게 그들이 아는 브라우저에 자세히 적어달라고 요청하고 버전을 정확하게 작성하십시오.

Chromium, Iron 빌드 (SRWare Iron 4.0.280)

공구 모양 (도구) 메뉴 : 옵션 / 고급 설정 / [쿠키 및 웹 사이트 권한 표시] 관련 도메인 / 사이트의 경우 검색 창에 접미사를 입력합니다 (예 : .foo.tv). 주의 : 노드 (사이트 또는 쿠키)를 클릭하여 강조 표시 한 경우 [제거]를 사용하여 특정 하위 트리 만 제거하십시오. [모두 제거]를 사용하면 검색에서 선택한 모든 사이트의 쿠키가 계속 삭제되고 디버깅 세션이 낭비됩니다.


답변

object의 키에 trim ()을 추가하고 이름을 str로 지정하면 여기서 문자열을 다루는 것이 더 명확 해집니다.

export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});