2009-08-18 2 views
1

아직 많은 사이트가있어, 설명 할 수없는 이유 때문에 Javascript를 사용하여 쿠키를 조작 할 수는 있지만 실제로 발생할 수있는 모든 XSS에 비추어이를 허용하는 좋은 이유는 없습니다. 왜 브라우저는 여전히 이것을 허용합니까? 왜 JS가 쿠키를 보지 못하게합니까?브라우저에서 여전히 자바 스크립트가 쿠키를 볼 수 있도록 허용합니까?

+8

기본 기능이기 때문에. 방해가된다면 NoScript를 사용하십시오. – voyager

+0

그것은 나에 관한 것이 아니라, 처음부터 다시 작성하고자하는 거대한 유지 보수가 불가능한 코드베이스에서 XSS 익스플로잇에 의해 쿠키를 얻은 사용자에 관한 것이지만 금지되어 있습니다. :) – dirtside

+1

http://www.codinghorror.com/blog/archives/001167.html HTTP 만 쿠키가 멋지다 ... – russau

답변

4

이 질문은 "브라우저가 여전히 HTML, 그 오래된 것을 지원하는 이유는 무엇입니까?"라고 말하는 것과 비슷하다는 것을 인정해야합니다. 이전 버전과의 호환성은 큰 문제이며 쿠키를 조작하는 모든 기존 자바 스크립트 코드를 잘라내는 것은 재앙입니다.

즉, 쿠키의 javascript 조작이 교차 사이트 통신 및 기타 등등에 유용한 경우도 있습니다.

4

이렇게하면 AJAX 요청을하지 않고 쿠키에서 환경 설정을 직접 설정하고 서버 측의 session/user_profile에 저장할 수 있습니다. 이것은 세션이 만료되었을 때 환경 설정을보기 위해 등록 할 필요가 없으므로 웹 사이트와 서버 측을 다시 방문 할 때 유지하고 싶은 일부 UI 환경 설정에 유용합니다.

+0

쿠키없이 세션을 어떻게 구현합니까? URL 매개 변수 사용? 그건 쿠키보다 더 나쁜거야. –

+0

+1. username = sean & password = 1234의 쿠키는 웹 개발자 입장에서 보면 어리 석다. 그러나 hide_tips = true를 가진 쿠키는 어쨌든 무해합니다. – seanmonstar

0

서버 측에서 httponly 쿠키를 설정할 수 있으며 자바 스크립트에서는 쿠키를 볼 수 없습니다. 그것은 당신이 원하는 효과를 줄 것입니다.

가끔은 클라이언트에서 사용되는 경우에도 브라우저가 모든 요청에서 쿠키를 서버로 전송한다는 점에서 자바 스크립트의 작은 양의 클라이언트 측 데이터를 저장하기 위해 쿠키를 사용합니다. 측면.

+0

그러나 모든 브라우저가 HTTPOnly 쿠키를 인식하지는 못합니다. 그리고 그들이 이해하더라도, 그들 중 일부는 버그가 있습니다. –

+0

XMLHttpReponse 해킹의 브라우저 지원/상태 표 : http://www.owasp.org/index.php/HTTPOnly#Browsers_Supporting_HTTPOnly XSS 공격에 대한 쿠키를 포기하는 브라우저의 수가 100 % 이상인 경우가 여전히 _BETTER_ 이상입니다. – russau

6

그리고 명확히 할 수 있습니다. 쿠키를 조작하는 JavaScript는 합리적이고 합당합니다. 자체적으로 XSS 문제가 발생하지 않습니다. 잘못 작성된 사이트가 있습니다.

관련 문제