2014-12-22 3 views
0

인터넷에서 호스팅되는 웹 서비스에 다시 연결되는 Windows 모바일 응용 프로그램을 개발하여 서버 데이터와 동기화합니다.Windows 모바일 기본 응용 프로그램에 CSRF가 있습니까?

모바일 응용 프로그램에 CSRF에 대한 모든 제어를 적용하지 않았습니까? 네이티브 응용 프로그램에 CSRF 보호가 필요합니까? 그렇다면 왜?

** 내 응용 프로그램은 웹 브라우저가 아닌 기본 응용 프로그램입니다.

답변

0

네이티브 응용 프로그램에 CSRF 보호가 필요합니까?

아니요, 모바일 응용 프로그램이 유일한 유형의 소비자 (예 : 웹 브라우저 없음)이고 모바일 응용 프로그램이 다른 도메인에 웹 요청을하지 않는 경우 정의에 따라 크로스 사이트 요청이 없기 때문에 CSRF를 정의 할 수 없습니다 위조하기.

0

CSRF 보호는 로그인 할 때 서버의 쿠키를 설정하고 네이티브 앱의 요청 헤더에 쿠키를 추가하여 도움을받을 수 있지만 앱이 아닌 웹 서버쪽에 있습니다.

+0

신속한 답변을 위해 @Bim B 대단히 감사합니다. Jtoken을 로그인 관리에 사용하고 있습니다. 이 외에도 CSRF 토큰을 사용해야합니까? – KrisP

0

응용 프로그램은 CSRF를 인식해야합니다 (백엔드에서 보호 기능을 구현 한 경우).

예를 들어 일반적으로 가장 좋은 방법은 중복 요청을 수행 할 수 없도록 다음 요청에서 사용될 각 요청에 토큰을 제공하는 것입니다. 모바일 앱에서이 토큰을 가져와 사용할 수 있어야합니다 (다시 서버 측에서이 토큰을 구현했다고 가정).

0

실제로 웹 사이트에 사용하는 사람 및/또는 인증 방법으로 사이트에 액세스 할 수 있는지 여부에 달려 있습니다.

브라우저을 통해 웹 서비스를 호스팅하는이 웹 사이트에 사용자가 로그인 할 수있는 경우 사용자가 사이트에 로그인 한 상태에서 CSRF가 브라우저는 웹 사이트가 통신 할 때 세션 및 기타 쿠키를 전송할 것이며, 이는 어떤 웹 사이트가 쿠키를 보내는 지에 관계없이 동일한 출처를 타겟팅하는 모든 요청에 ​​대해 브라우저가 쿠키를 자동으로 추가하기 때문입니다.

NT 인증을 통해 웹 서비스에 직접 액세스 할 수있는 경우 네트워크에 로그인되어있는 한 대답은 '예'입니다. 이유는 악의적 인 JavaScript를 사용하는 공격 웹 사이트가 요청을 보내는 사이트와 상관없이 웹 서비스에 여전히 액세스하기 때문입니다.

마지막으로 브라우저를 통해 사이트에 로그인 할 수없고 NT 인증을 사용하지 않는 경우 SilverlightFox의 대답이 정확합니다. 그 이유는 사이트에 대한 세션 쿠키가 없으므로 CSRF 공격이 발생할 때 보낼 것이 없기 때문입니다.

수정 : 웹

이가 (모든 동사와 함께 할 수 있지만) 넣어 및 사후 동사로 다시 전송되는 위조 방지 토큰을 통해 고정됩니다. 악의적 인 웹 사이트가 요청을 보내려 시도 할 수 있으며 세션 쿠키를 확실히 수집하지만 put/post에 위조 토큰이 없으면 실패하게됩니다.

위의 patwhite는 수정 사항을 제안하지만 문제를 처리하기위한 다른 전략이기 때문에 모바일 웹과 다른 웹 서비스 종점이 필요합니다.

관련 문제