JavaScript에서 XMLHttpRequest를 사용하여 쿠키(헤더)를 설정하려면 어떻게 해야 합니까?
XMLHttpRequest를 사용하여 XSS 요구에 Cookie를 설정하려고 합니다.
XMLHttpRequest Specification을 찾았습니다.섹션 4.6.2-5에서는 Cookie, Cookie2, 기타 헤더의 설정은 허용되지 않는 것 같습니다만, 회피책이 있으면 좋겠다고 생각했습니다.
my (jQuery) code는 아래와 같으나 cookie가 설정되지 않아 쿼리가 실패합니다.
$.ajax( {
type : "POST",
url : URL,
data: SOAP_INBOX_MAIL_QUERY,
dataType : "xml",
async: false,
beforeSend : function(xhr) {
var cookie = credentials["COOKIE"];
console.info( "adding cookie: "+ cookie );
xhr.setRequestHeader('Cookie', cookie);
},
success : function(data, textStatus, xmLHttpRequest){
},
error : function(xhr, ajaxOptions, thrownError) {
credentials = null;
}
});
이것은 할 수 있다.$.ajax 콜에서는 다음 사항이 필요합니다.
xhrFields: {
withCredentials: true
}
(jQuery 문서를 참조). 또한 CORS를 지원하기 위해 요청하려는 사이트도 필요합니다(최소한 CORS는 사용자의 오리진을 허용하고 다음을 설정할 필요가 있습니다).Access-Control-Allow-Credentials
HTTP 헤더true
).
확실히 효과가 있어.HTTPS를 통해 Basic Auth 등을 사용하여 실행할 수 있습니다.jQuery는 (xhrFields)에 지시하면 모든 것(auth 헤더, cookie)을 전송합니다.또한 사이트에서 적절한 CORS 헤더가 제공됩니다.포기하지 마세요!
보안상의 이유로 XMLHTTPRequest 중에는 헤더를 변경할 수 없습니다.
document.cookie를 사용하여 쿠키를 설정하면 요청을 전송할 때 쿠키 헤더에 쿠키가 포함됩니다.
https://developer.mozilla.org/En/Server-Side_Access_Control
origin을 허용하고 Access-Control-Allow-Credentials HTTP 헤더를 true로 설정할 수도 있습니다.
jquery 코드와 동일한 도메인에 있는 요청의 경우 jquery cookie 플러그인을 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2320110/how-do-i-set-a-cookie-header-with-xmlhttprequest-in-javascript
'source' 카테고리의 다른 글
Yooman과 Bower가 부트스트랩 CSS를 추가하지 않음(각도)JS 제너레이터) (0) | 2023.02.23 |
---|---|
어레이의 일부만 매핑할 수 있습니까? (Array.map()) (0) | 2023.02.23 |
MongoDB stats() 함수는 비트 또는 바이트를 반환합니까? (0) | 2023.02.23 |
앵귤러와의 체인 약속JS (0) | 2023.02.23 |
AngularJS 클라이언트 측 데이터 바인딩 및 서버 측 템플릿 생성 (0) | 2023.02.23 |