2010-11-23 5 views
3

서버에서 실행중인 devise를 사용하여 사용자 등록으로 레일 3 애플리케이션을 구성했습니다. 사람들이 웹 사이트를 통해 서버에 로그인 할 수있게하고 사람들이 아이폰 앱을 사용하여 계정을 만들고 로그인하도록 허용하고 있습니다. 사람들이 아이폰 응용 프로그램을 사용하는 경우a) CSRF 토큰 + SSL이없는 HTTP 인증 또는 b) devise가있는 CSRF 토큰이 필요합니까?

, 나는이 두 가지 작업을 지원하고 싶습니다 : CSRF없이 계정에 대한

A) 가입()이 원인이 보안 문제는 무엇입니까?

b)는 SSL

C) SSL과 HTTP의 인증과 확보에 로그인 한 후 서버에 대한 모든 POST 요청에 의해 보안의 HTTP 인증으로 로그인합니다.

사용자가 웹 사이트에있는 경우 사용자가 매번 사용자 이름과 암호를 입력하지 않도록 모든 작업에 CSRF 토큰을 요구합니다.

는 당신의 도움을 주셔서 감사합니다.

+0

CSRF 토큰은 사용자 이름과 암호를 입력하는 것과 아무런 관련이 없습니다. 사용자는 로그인 한 사용자 (예 : 특수 제작 된 Javascript 마우스 오버 또는 이미지 포함)에 대해 교차 사이트 요청 공격을 실행할 수 없도록합니다. 그들은 양식이 게시 될 때 양식이 귀하 사이트의 사용자에 의해 작성되었는지 확인합니다. –

답변

3

컨트롤러 또는 개별 조치 방법에서 CSRF 토큰을 선택적으로 비활성화 할 수 있습니다. 필터 verify_authenticity_token 조건의 몇 가지를 기반으로 : 나는 실제로 비슷한 뭔가를 찾고 있어요

class StatsController < ApplicationController 
    skip_before_filter :verify_authenticity_token 
    ... 
end 

, 나는 아이폰이 다른 도메인 이름을 사용하고 선택적으로 해제해야합니다. 이것은 OAUTH2 구현을 시작하고 실행할 수있을 때까지만 우리를 보류합니다.

+1

'skip_before_filter : verify_authenticity_token, : id => : skip_csrf?'를 정교하게하려면 원하는 조건으로 응용 프로그램 컨트롤러에서'skip_csrf? '를 구현하십시오. –