2012-06-09 2 views
2

저는 장고의 csrf-token을 사용하여 csrf 공격을 막는 장고 사이트를 가지고 있습니다. 양식 중 하나가.인증이 필요없는 페이지에 'CSRF 토큰'을 포함시키는 것이 보안 위험입니까?

CSRF 토큰에 로그인하지 않은 포함, 공공 사람들이 액세스 할 수는 크로스 도메인 요청에 대한 보호를 제공 할 예정이다.

편집 :. (내 댓글에서 인용) 는 "그러나, 허가없이 사용할 수 있습니다 POST 요청의 경우, CSRF는 (보안 문자 여기에 더 잘 할 것)을 trival 스팸 필터보다 낫다 사실, 인증을 필요로하지 않는 페이지에 CSRF 토큰 (30 분 후에 만료 됨)을 포함시켜 보안 위험을 감수해야합니다. (하지만 내 사이트가이를 수행하고 있기 때문에 처음에이 게시물을 만들었습니다) "

또한,이 경우, 하나는, 브라우저 JS 콘솔에서 해당 페이지를 가져올 수있는 몇 가지 특정 XPath를 통해 CSRF 토큰을 얻고 그 CSRF에 어떤 임의의 데이터를 게시 할 수 있습니다. 또한 쉽게 재현 할 수있는 단계, 특정 사이트에 대한 공격 또는 Django 사이트를 설계 할 수 있으므로 항상 'csrfmiddlewaretoken' 외에도 csrf 토큰을 찾을 수 있습니다 (reddit, pinterest 등의 사이트도 포함).).

는 최대한 멀리 볼 수있는, 떨어져 조금 어렵게에서, CSRF 토큰은 큰 도움이되지 않았다.

거기에 어떤면이 있습니까? 내 구현이 잘못 되었습니까? 만약 내가 옳다면 당신의 csrf 토큰을 html 소스 (특히 인증을 필요로하지 않는 사람들)가 가지고 다니는 것이 멍청한가요?

+1

어떻게 다른 사람에 대한 공격을 설명하는 과정? 당신이 세션의 소유자로서 수동 클라이언트 사이드 포스트를 수행하는 것처럼 보입니다. – jdi

+0

[csrf 토큰은 무엇입니까? 그것은 무엇의 중요성이며 어떻게 작동합니까?] (http://stackoverflow.com/questions/5207160/what-is-a-csrf-token-what-is-its-importance-and-how-does-it- 일) – jdi

+0

그래,하지만 내가 할 때만. 악성 플러그인이 누군가 브라우저에 설치되어 있다면 플러그인은 간단한 get 요청으로 양식을 가져 와서 csrf 토큰을 얻고 양식을 게시 할 수 있습니다. 인증을 필요로하지 않지만 양식을 포함하는 GET 요청 (csrf 토큰 포함)이 있으면 csrf가 쉽게 우회되는 것 같습니다. – Optimus

답변

3

This question 같은 일에 대한 답변 정말 좋은 몇 가지가있다. 또한, 거기에 대한 마지막 대답은 기술적으로 토큰 (자바 스크립트를 통해)의 양식을 긁어 내고 자바 스크립트를 통해 게시물 요청을 제출하는 것이 가능하다는 사실을 다룹니다. 그러나 피해자에 기록되어야 할 것이다. CSRF 보호

점은 특히 임의의 사용자를 속여 방지하는 것입니다. 그것은 클라이언트 측 익스플로잇과 아무 관련이 없습니다. 또한 보호 부분에는 사이트 간 원본 요청 거부가 포함되어야한다고 생각해야합니다. 요청은 대상 사이트와 동일한 출처에서 이루어져야합니다.

결론은 CSRF 값을 갖는다. 그것의 보호 지역,하지만 그 끝이 모두 모두가 아닙니다. 그리고 모든 것을 방어 할 수는 없습니다. a blog post about CSRF에서

인용구 :

비밀 숨겨진 양식 값입니다. 각 양식 (일반적으로 사용자 세션에 묶여 있음)과 함께 고유 한 서버 양식 값을 보내고 양식 포스트에서 동일한 값을 얻었는지 검증하십시오.공격자는 은 XmlHttpRequest 함수에서 동일한 도메인 요청 제한 덕분에 JavaScript를 통해 대상 사용자로 원격 양식을 간단히 긁을 수 없습니다. 관심의

... 그리고 의견 :

내가 자바 스크립트 마법사 아니지만, 그것을 구문 분석, 악성 페이지에 숨겨진 iframe에 원격 페이지 를로드 할 수 있습니다 javacript를 숨겨진 토큰을 찾은 다음 사용자가 양식을 채우십시오 (아마도) 올바른 값을 제출할 예정입니까? 년 9 월 24 일에

  • 데이비드 굿윈 2008 오전 2시 35분

@ 데이비드 굿윈 : 아니, 동일 출처 정책은 iframe 대응의 내용을 읽을 악성 페이지를 방지합니다. 년 9 월 24 일에

  • 리코

    2008 오전 3시 3분
+0

고마워, 내가 csrf 토큰이 실제로 한 일에 대한 잘못된 감각을 가지고있는 것처럼 보이고, 첫 번째 링크의 OP도 내 것과 비슷한 의구심을 가졌다. – Optimus

+0

사실,이 질문은 http://stackoverflow.com/questions/10242263/what-is-csrf-protection-really-for-in-django/의 가능한 복제본이지만 질문 제목은 매우 다르게 보일 수 있습니다. – Optimus

0

양식이 공개되어 인증이 필요하지 않은 경우 악의적 인 사이트/플러그인/사람을 포함한 모든 사람이 게시자가 게시하는 것을 막을 수있는 방법이 없습니다. 이 문제는 CSRF가 아니라 스팸이라고합니다.

이 읽기 ​​: http://en.wikipedia.org/wiki/Cross-site_request_forgery

CSRF는 인증 된 사용자 척 하여 형태의 악의적 인 사이트 게시를 포함한다.

+0

죄송합니다. 의심스러운 점에 대해 구체적으로 설명하지 않았습니다. 내 질문을 편집했으며, 이미 csrf 위키 페이지를 읽었습니다. 그렇지 않습니다. 내 의심을 해결해. – Optimus