programing

AJAX 요구에 의한 쿠키 송신 방지

lastmemo 2023. 2. 25. 19:41
반응형

AJAX 요구에 의한 쿠키 송신 방지

스크립트에서 호출하는 웹 서비스가 있지만 쿠키에 저장되는 정보는 필요하지 않습니다.제가 서비스에 요청하면 쿠키는 함께 보내집니다.디폴트로는 HTTP 요구와 함께 쿠키가 송신되는 것은 알고 있습니다만, 그 동작을 덮어쓰고 쿠키를 송신하지 않는 방법은 없습니까?

한마디로 다음과 같이 의뢰합니다.

$.ajax({
    type: "POST",
    cache: false,
    url: url,
    data: data,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) { successFunc(response); },
    error: function(xhr) { errorFunc(xhr); }
});

서버의 쿠키리스 서브도메인으로 AJAX 요구를 송신합니다.즉, 앱은 www.mydomain.com이며, 쿠키를 설정하지 않은 api.mydomain.com에서 Ajax 요청이 제공됩니다.또, 이미지등의 정적 파일을 사용하는 것도 좋은 방법입니다.

http://developer.yahoo.com/performance/rules.html의 "컴포넌트에 쿠키 없는 도메인 사용" 섹션을 참조하십시오.

또 다른 접근법은 $.ajax를 실행하기 전입니다.
1. javascript를 사용하여 해당 도메인의 쿠키를 브라우저에서 가져옵니다(글로벌 변수에 저장).
2. 브라우저에서 javascript를 사용하여 도메인 쿠키를 삭제합니다.
3. $.199 콜을 한다.
4. (글로벌 변수의) 쿠키를 브라우저로 되돌립니다.

도메인에서 쿠키가 전혀 필요하지 않은 경우 해당 쿠키를 삭제하십시오(따라서 1. 및 4. 건너뛰기).

withCredentials 플래그는 발신원 간 Ajax 콜을 사용하여 쿠키를 실제로 전송하기 위해 필요합니다.

참조: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

false로 설정하면 쿠키가 전송되지 않습니다.

같은 발신기지 요구에 대해서는, 여기에 기재되어 있는 그 외의 회답에 따를 필요가 있습니다.

브라우저가 HTTP 요청과 함께 일치하는(경로+도메인+세션) 쿠키를 보낸다는 말은 맞습니다.이것은 cookie 메커니즘이 기능하기 위해 매우 중요합니다.

그냥 쿠키만 읽지 말아줄래?

또한 쿠키가 처음 설정되었을 때 쿠키에 액세스할 수 있는 디렉토리(및 하위 디렉토리)를 설정할 수 있습니다.

예를 들어 /foo/bar/에서만 읽도록 쿠키를 설정한 경우 /whatter/ajaxHandler에 파일이 있습니다.php는 이러한 쿠키를 볼 수 없습니다.

http://us.php.net/setcookie 를 참조해 주세요.

당신이 PHP를 사용하고 있는지는 모르겠지만, 당신에게는 좋은 출발점이 될 수 있습니다.

아니요, 쿠키는 항상 전송됩니다.

및 " " " 를 할 수 .http바바는는

또는 (많은 사이트에서 사용하는) 쿠키를 전송하지 않은 새로운 서브도메인을 만듭니다.

언급URL : https://stackoverflow.com/questions/2829201/prevent-cookies-from-being-sent-on-ajax-request

반응형