2013-09-02 4 views
0

자바 스크립트로 명시 적으로 쿠키가없는 요청을 할 수 있습니까? 쿠키를 "에뮬레이트"(즉, 쿠키 값으로 실제 쿠키가 설정되어 있지 않으면 데이터를 제출할 수 없음) 요청을 할 수 없다는 것을 알고 있습니다. 그러나 이는 보안 측면에서보다 수용 가능합니다.쿠키리스 아약스 요청을하는 방법은 무엇입니까?

+0

중복 : http://stackoverflow.com/questions/9186815/suppress-a-cookie-for-jquery-ajax-requests (하지만 답은 다음과 같을 수 있습니다.) – Thilo

+0

@Thilo 그냥 IMO : 개인 쿠키를 억제하려고하지 않고 중복 쿠키가 아닌 것으로 간주합니다. 쿠키를 사용하지 않는 (또는 변경하는) 것은 "변조"로 간주 될 수 있지만 쿠키없는 요청은 악의적 인 응용 프로그램을 가질 가능성이 적습니다. –

답변

1

을 선택할 수 있습니다

  1. 당신은 아약스 요청을하기 전에 모든 클라이언트 제어 쿠키를 삭제할 수도 있습니다 (이 서버 측에만 쿠키 명확하지 않습니다).
  2. 서버가 특정 요청에 대한 쿠키 값을 무시하도록 지시하는 아약스 요청에 인수를 추가 할 수 있습니다.
  3. ajax 요청이 관심있는 쿠키에 대한 액세스 권한이없는 서버 나 경로로 이동하여 요청과 함께 전송되지 않도록 설정할 수 있습니다.
  4. 특정 쿠키 값이고 그 값이 클라이언트가 제어하는 ​​경우 해당 쿠키 값을 저장하고 지우고, 아약스 요청을 보낸 다음 쿠키 값을 다시 복원 할 수 있습니다. 실제로, 나는 당신이 모든 쿠키 값으로 이것을 할 수 있다고 생각하지만, 단지 몇 가지로 그것을하는 것이 더 간단합니다.
+0

In (2) 서버에 대한 "기능적"명령 (예 : '? ignorecookies = true'등으로 쿠키를 무시하도록 코드/서버 처리 설정) 또는 헤더로 보낸 HTTP 프로토콜 명령에 대해 이야기하고 있습니까? –

+0

@ o.v. -'? ignorecookies = true'와 같은 것, 응용 프로그램 수준에서 수행됩니다. – jfriend00

+0

은 (3)의 변형으로 끝났습니다 - F5 규칙을 설정하여 특정 요청에서 쿠키를 제거하고 건배 –

1

질문에 대한 언급에서 언급했듯이 이것은 불가능합니다. 브라우저의 이러한 측면을 제어 할 수는 없습니다. 이 방법을 사용할 수있는 유일한 방법은 쿠키의 PATH을 도메인의 특정 디렉토리 (예 : host.domain.com/myApp)로 설정 한 다음 ajax 요청을 해당 디렉토리의 하위가 아닌 디렉토리에 두는 것입니다. 쿠키로 설정 한 PATH (예 : host.domain.com/ajaxDirectory).

요청 크기를 줄이기위한 일반적인 방법은 다른 하위 도메인에 리소스를 저장하는 것입니다. 이 방법으로 대부분의 쿠키는 전송되지 않지만 분명히 AJAX에 대한 옵션이 아닙니다 (JSONP을 사용하지 않는 한).

0

이 더 허용 보안 현명한

그냥 서버 측에서 사용되지 않는 쿠키를 무시하거나, 먼저 로그 아웃 서비스에 요청을 할 것으로 보인다. 또 다른 방법은 서버 코드를 작성하여 쿠키의 데이터를 덮어 쓸 수 있도록하는 것입니다. 예를 들어 게시물 본문이나 요청 헤더에서 양식 인코딩 된 데이터를 사용할 수 있습니다. 내가 볼

관련 문제