2012-01-02 3 views
10

JSF 2.0에서 webapp를 수행 할 때 이미 crossite - 스크립팅 및 - 요청 위조로부터 보호된다는 내용의 기사를 연구 중입니다. SO post에서 발췌 한 다음이를 확인 :JSF 2.0에서 CSRF를 방지하는 방법

이 길고 강한 자동 생성 된 값을 사용하는 대신에 비교적 예측 순서 값 때문에 그것을 견고 CSRF 방지함으로써 개선되었다 JSF 2.0

.

다른 사람이 자세히 설명해 줄 수 있습니까? 이 자동 생성 된 값은 CSRF를 어떻게 방지합니까? 감사!

+0

https://www.packtpub.com/mapt/book/application_development/9781782176466/9/ch09lvl1sec84/jsf-security-notes –

답변

11

방법이 자동 생성 된 값은 CSRF를 방지합니까?

짐작할 수 없기 때문에. 그래서 공격자는 공격 사이트의 형태로 숨겨진 필드에 그것을 하드 코딩 할 수 없습니다 (대상 사이트에 XSS 구멍이 없으면 XSS 수단을 통해 값을 간단하게 얻을 수 있습니다). 값이 JSF에 유효하지 않은 경우 공격 사이트의 양식 제출은 단순히 처리되지 않고 대신 ViewExpiredException을 생성합니다. 공격자는 URL 속성 jsessionid을 통해 다시 전달할 수 있도록 세션 ID를 가져와야하기 때문에 원래 "약한"CSRF 보호는 여전히 세션 ID를 얻기 위해 일부 XSS 구멍이 필요합니다.

결국 저는 CSRF가 무엇인지 전혀 이해하지 못한다고 생각합니다. CSRF가 무엇인지 이해한다면 그 대답은 자명하다. 이 경우 다음 질문을 확인하십시오. Am I under risk of CSRF attacks in a POST form that doesn't require the user to be logged in?

5

JSF 2.0의 CSRF 보호는 암시 적이며 POST 요청에만 유효하다는 점을 기억하십시오.

JSF 2.2에서 이에 대한 명시적인 지원이있을 것입니다. 나는 잠시 여기 설명 : http://arjan-tijms.omnifaces.org/p/jsf-22.html

+0

GET 요청에 대한 그래서? JSF 2.0에서는 무엇을 할 수 있습니까? – oikonomopo

관련 문제