2012-10-28 3 views
2

양식이있는 정적 사이트가 있습니다. 양식은 제출 된 데이터를 캡처하는 Rails 엔드 포인트에 제출합니다. 정적 사이트와 레일 엔드 포인트는 동일한 도메인에 있고 서로 다른 하위 도메인에 있으며 모든 트래픽은 완전히 HTTPS에 있습니다.CSRF 고정 페이지 보호

레일스 CSRF가 서버 생성 양식에 어떻게 작용하는지 이해합니다. 그러나 제 경우에는 이러한 양식이 정적 HTML 페이지에 있습니다. 모든 요청 헤더가 위조 될 수 있으므로 이해할 수 없습니다.

이 시나리오에서는 강력한 솔루션을 사용할 수없는 경우 마지막 옵션은 서버 생성 양식으로 이동하는 것입니다 (지금은 피하고 싶습니다).

좋은 접근 방법에 대한 제안은 언제든지 환영합니다. 또는 이미이 작업을 수행하고있는 시스템이나 라이브러리에 대한 포인터.

감사

답변

1

은 내가 CSRF prevention cheat sheet을 읽어 보시기 바랍니다.

사용할 수있는 두 가지 정적 방법이 있습니다.

1) JavaScript를 사용하여 토큰을 가져오고 nonce를 포함하도록 정적 HTML 페이지를 다시 작성하십시오. 덜 안전한 만들기 - 2>에

2) Check the Referer and Origin headers

+0

은은 HTTPS POST 요청의 리퍼러 헤더를 스푸핑 할 수 없습니다? –

+0

CSRF 치트 치트 팻 (cheat cheat sheet)의 말 : 독자 브라우저에 리퍼러 헤더를 스푸핑하는 것은 쉬운 일이 아니지만 CSRF 공격에서 그렇게하는 것은 불가능합니다. - 이해가 안되네. –

+0

@Akshay Rawat는 CSRF의 요점은 희생자 브라우저의 경계 내에서 요청을 위조한다는 것입니다. referer, origin 및 다른 헤더는 절대로 수정할 수 없습니다. Flash를 사용하면 일부 헤더를 변경할 수 있지만 Referer와 Origin은 항상 오프 한계입니다. – rook