2011-04-21 3 views
4

저는 현재 CSRF에 대해 더 많이 배우고 있으며 쿠키에 대한 기본적인 질문이 있습니다. Jeff Atwood's article on CSRF에서 :. POST 요청이 사이트로 전송 될 때기본 쿠키 및 CSRF 질문

"요청은 양식 값과 쿠키 값이 공격자가 양식을 제출하면 동일한 경우 이 유효한 것으로 간주해야한다 사용자를 대신하여, 그는 단지 의 값을 양식을 수정할 수 있습니다. 공격자가 서버로부터 전송 된 데이터를 읽거나 동일 출처 당, 정책을 쿠키 값을 수정할 수 없습니다.이 의미 있다는 공격자가 할 수있는 동안 그가 원하는 모든 가치를 와 함께 보내면 그는 될 것입니다. 수 없습니다 수정하거나 쿠키에 저장된 값을 읽으십시오. "

쿠키 a piece of text stored on a users computer 경우, 어떻게 쿠키의 값을 읽기/수정할 수 없습니다?

쿠키의 가치를 알고 있고 양식에 숨겨진 의사 랜덤 값을 볼 수 있다면 공격을 수행하는 데 필요한 모든 것이 없습니까?

덕분에,

답변

3

동일 출처 정책은 공격 웹 사이트 다른 도메인에서 쿠키를 읽을 수 없습니다 것을 의미한다. http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies

CSRT는 사용자가 루트킷이나 그와 비슷한 것을 가지고있는 공격자에 대해 말하는 것이 아니라 사용자가 POST 요청을 통해 양식을 도메인에 제출하는 악의적 인 서버입니다. 악의적 인 서버가 공격하기를 원합니다. 악의적 인 서버가 대상 도메인의 쿠키를 읽을 수 없기 때문에 악의적 인 서버가 만들고있는 POST 요청에 대한 CSRF 필드를 올바르게 채울 수 없습니다.

2

이것은 싱크로 나이저 토큰 패턴입니다. 일반적으로 양식에 해당 사용자의 세션에 고유 한 값이있는 숨겨진 필드가 포함되어 있음을 의미합니다. 동일한 값이 사용자 컴퓨터의 쿠키에 저장됩니다. 양식이 제출되면 두 값의 일치 여부가 검사됩니다.

이 방법의 장점은 악의적 인 웹 사이트가 합법적 인 웹 사이트에 대한 게시물 요청을 작성하려고 시도 할 때 숨겨진 양식 값을 알 수 없다는 것입니다. 이것을 얻으려면 훨씬 더 복잡한 과정입니다.

공격 사이트는 다른 도메인에서 발급 되었기 때문에 공격 값을 읽거나 조작 할 수 없습니다. 이것에 대한 자세한 내용은 여기를 참조하십시오 : OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF)

+1

그들은 페이지의 소스를보고 숨겨진 양식 값을 얻을 수 있습니다. 이해가 안됩니다. – barfoon

+3

예, CSRF와는 상당히 다른 공격 벡터입니다. 이는 단순히 역주로 과 같은 URL을 요청합니다 (또는 중간 요청을 사용하여 POST 요청을 구성합니다). OWASP 페이지에서 CSRF에 대해 자세히 설명합니다. https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet –