문제

CSRF (Cross-Site Request Grospory) 공격과 관련하여 쿠키가 가장 많이 사용되는 인증 방법 인 경우 웹 브라우저가 다른 도메인에서 생성 된 페이지에서 일부 도메인 (및 해당 도메인)의 쿠키를 보내는 이유는 무엇입니까?

그러한 행동을 허용하지 않아 브라우저에서 CSRF가 쉽게 예방할 수 없습니까?

내가 아는 한, 이런 종류의 보안 검사는 웹 브라우저에서 구현되지 않지만 그 이유를 이해하지 못합니다. 내가 뭔가 잘못 되었나요?

CSRF 정보 :

편집 : 위의 경우 쿠키는 HTTP 게시물에 보내지 않아야한다고 생각합니다. 그것이 저를 놀라게하는 브라우저 동작입니다.

도움이 되었습니까?

해결책

브라우저가 쿠키를 보내지 않는 이유는 무엇입니까?

사이트 A (http://www.sitea.com) 사용자를위한 쿠키를 설정합니다.

사용자는 사이트 B로 탐색합니다 (http://www.siteb.com). 사이트 B는 사이트 A와의 통합 기능 - 현장 A에서 무언가를하려면 여기를 클릭하십시오! 사용자가 "여기"를 클릭합니다.

브라우저에서 알 수있는 한, 사용자는 사이트 A에 요청을하기로 결정한 의식적인 결정을 내므로 사이트 A에 대한 요청을 처리하는 것과 동일한 방식으로 처리하고 요청에 따라 쿠키를 보내는 것이 포함됩니다. 사이트 A.


편집하다: 여기서 주요 문제는 인증 쿠키와 다른 쿠키 사이에 차이가 있다고 생각한다는 것입니다. 쿠키는 사용자 기본 설정, 마지막 높은 점수 또는 세션 토큰 등 무엇이든 저장하는 데 사용될 수 있습니다. 브라우저는 각 쿠키가 무엇을 사용하는지 전혀 모릅니다. 나 원하다 쿠키는 항상 사이트를 설정하는 사이트에서 사용할 수 있도록하고 있으며 사이트가 필요한 예방 조치를 취하는지 확인하고 싶습니다.

아니면 "gmail"을 위해 Yahoo를 검색 한 다음 링크를 클릭하면 http://mail.google.com, 로그인해서는 안됩니다. Gmail에게 로그인을 유지하라고 말하더라도, 다른 사이트에서 링크를 클릭했기 때문에?

다른 팁

브라우저가 쿠키를 외부 도메인으로 보내는 것은 아니고, 인증 된 것은 사이트가 요청의 소스를 확인하지 않기 때문에 요청이 대지.

브라우저가이를 허용하지 않는 한 ... 크로스 사이트 요청이 바람직한 많은 상황은 어떻습니까?

편집 : 명확하게 말하면, 쿠키는 도메인을 가로 질러 전송되지 않습니다.

XSRF 공격의 시점은 브라우저를 애플리케이션의 다른 지점으로 안내하는 것이기 때문에 그 상황에서 브라우저가 할 수있는 일이 많다는 것을 모르겠습니다. 불행히도, 브라우저는 보내도록 지시되는 요청이 악의적인지 아닌지 전혀 모른다. 예를 들어, XSRF의 전형적인 예제가 주어지면 :

<img src="http://domain.com/do_something_bad" />

브라우저에 나쁜 일이 일어나고 있다는 것은 분명하지 않습니다. 결국, 그것과 이것의 차이점을 어떻게 알 수 있습니까?

<img src="http://domain.com/show_picture_if_authenticated" />

많은 오래된 프로토콜에는 큰 보안 구멍이 있습니다. 최근에 발견 된 사람들에게 다시 생각해보십시오. DNS 취약점. 기본적으로 모든 네트워크 보안과 마찬가지로 엔드 포인트의 책임입니다. 예, 우리가 이것을 스스로 해결해야한다는 것은 짜증나지만 브라우저 수준에서 수정하기가 훨씬 어렵습니다. 명백한 것들이 있습니다 (u003Cimg src="logoff.php"> 어리석은 것처럼 보이지만, 맞아요?) 항상 가장자리 케이스가있을 것입니다. (결국 PHP 파일의 GD 스크립트 일 수도 있습니다.) AJAX 쿼리는 어떻습니까? 등등...

사이트의 쿠키는 다른 사이트로 전송되지 않습니다. 실제로 성공적인 CSRF 공격을 구현하기 위해 공격자는 이러한 쿠키에 액세스 할 필요가 없습니다.

기본적으로 공격자는 이미 대상 웹 사이트에 로그인 한 사용자를 속여 링크를 클릭하거나 해당 사용자의 자격 증명으로 대상 사이트에서 무언가를 수행 할 이미지를로드합니다.

즉, 사용자는 작업을 수행하고 있으며 공격자는 사용자가 그렇게하도록 속였습니다.

어떤 사람들은 브라우저가 할 수있는 일이 많다고 생각하지 않는다고 말했습니다.

이것 좀 봐:

http://people.mozilla.org/~bsterne/content-security-policy/origin-header-proposal.html

CSRF 공격을 완화하는 데 도움이되는 새로운 HTTP 헤더에 대한 제안에 대한 개요입니다.

제안 된 헤더 이름은 "원산지"이며 기본적으로 경로를 빼고 "참조"헤더입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top