자바 스크립트로 현재 페이지의 모든 쿠키를 나열하려면 어떻게해야합니까?
Javascript의 도움으로 현재 페이지와 관련된 모든 쿠키를 나열하는 방법이 있습니까? 즉, 쿠키의 이름을 모르지만 쿠키에 포함 된 모든 정보를 검색하려는 경우입니다.
현재 도메인에 대한 쿠키를 나열 할 수 있습니다.
function listCookies() {
var theCookies = document.cookie.split(';');
var aString = '';
for (var i = 1 ; i <= theCookies.length; i++) {
aString += i + ' ' + theCookies[i-1] + "\n";
}
return aString;
}
그러나 보안상의 이유로 다른 도메인에 대한 쿠키를 나열 할 수 없습니다.
var x = document.cookie;
window.alert(x);
현재 사이트가 액세스 할 수있는 모든 쿠키를 표시합니다. 예를 들어 "username = Frankenstein"및 "username = Dracula"쿠키를 두 개 만든 경우이 두 줄의 코드는 "username = Frankenstein; username = Dracula"를 표시합니다. 그러나 만료일과 같은 정보는 표시되지 않습니다.
많은 사람들이 이미 document.cookie
모든 쿠키를 제공 한다고 언급했습니다 http-only
.
시간을 따라 잡기 위해 스 니펫을 추가하겠습니다.
document.cookie.split(';').reduce((cookies, cookie) => {
const [ name, value ] = cookie.split('=').map(c => c.trim());
cookies[name] = value;
return cookies;
}, {});
스 니펫은 쿠키 값이 값인 키로 쿠키 이름이있는 객체를 반환합니다.
아니.
쿠키 처리를 위해 제공하는 유일한 API 브라우저는 키-값 쌍을 통해 쿠키를 가져오고 설정하는 것입니다. 모든 브라우저 는 도메인 이름으로 만 쿠키 를 처리합니다 .
현재 도메인의 모든 쿠키에 대한 액세스는를 통해 수행됩니다 document.cookie
.
아니에요. 현재 도메인과 관련된 정보 만 읽을 수 있습니다.
function listCookies() {
let cookies = document.cookie.split(';')
cookies.map((cookie, n) => console.log(`${n}:`, decodeURIComponent(cookie)))
}
function findCookie(e) {
let cookies = document.cookie.split(';')
cookies.map((cookie, n) => cookie.includes(e) && console.log(decodeURIComponent(cookie), n))
}
이것은 당신이있는 창문을위한 것입니다. 깨끗하고 간결하게 유지하려고했습니다.
리퍼러 URL과 같은 일부 쿠키가 포함 =
되어 있습니다. 결과적으로 단순히 분할 =
하면 불규칙한 결과가 발생하고 여기의 이전 답변은 시간이 지남에 따라 (또는 사용 깊이에 따라 즉시) 분석됩니다.
이것은 등호의 첫 번째 인스턴스 만 사용합니다. 쿠키의 키 값 쌍이있는 객체를 반환합니다.
// Returns an object of key value pairs for this page's cookies
function getPageCookies(){
// cookie is a string containing a semicolon-separated list, this split puts it into an array
var cookieArr = document.cookie.split(";");
// This object will hold all of the key value pairs
var cookieObj = {};
// Iterate the array of flat cookies to get their key value pair
for(var i = 0; i < cookieArr.length; i++){
// Remove the standardized whitespace
var cookieSeg = cookieArr[i].trim();
// Index of the split between key and value
var firstEq = cookieSeg.indexOf("=");
// Assignments
var name = cookieSeg.substr(0,firstEq);
var value = cookieSeg.substr(firstEq+1);
cookieObj[name] = value;
}
return cookieObj;
}
특정 페이지의 쿠키를 빠르게보기 위해 URL이 다음과 같이 설정된 즐겨 찾기 모음 "쿠키"바로 가기를 유지합니다.
javascript:window.alert(document.cookie.split(';').join(';\r\n'));
'Nice programing' 카테고리의 다른 글
RSA 개인 키 암호는 내부에서 어떻게 작동합니까? (0) | 2020.12.01 |
---|---|
언제 IORef를 사용해도 괜찮습니까? (0) | 2020.12.01 |
속성 / 함수 단계 (F11)가 예상대로 작동하지 않습니다. (0) | 2020.12.01 |
Vim에서 220 번째 열을 지나면 마우스가 작동하지 않는 이유는 무엇입니까? (0) | 2020.12.01 |
Java에서 e.printStackTrace () 사용 (0) | 2020.12.01 |