면허: 아파치 소프트웨어 재단 (ASF)에 하나 이상의 참가자 사용권 계약 하에서 허가 된. 저작권에 대한 추가 정보를 보려면 NOTICE 파일을 보십시오. ASF는 이 파일을 아파치 라이센스 2.0 (이하 “라이센스”) 하에 배포합니다. 라이센스에 허가되지 않은 용도로는 이 파일을 사용하실 수 없습니다. 라이센스의 복사본을 얻을 수 있습니다.

       http://www.apache.org/licenses/LICENSE-2.0 적용 가능한 법률에 의해 요구 또는 서 면으로 동의 하지 않는 한 소프트웨어 라이선스 하에 배포에 배포 되는 "있는 그대로" 기준, 보증 또는 조건 어떤 종류의 없이, 명시적 또는 묵시적.  라이센스 권한 및 제한 적용 되는 특정 언어에 대 한 참조

라이센스.

보안 가이드

다음 가이드 코르도바 응용 프로그램을 개발할 때 고려해 야 할 몇 가지 보안 모범 사례를 포함 한다. 보안은 매우 복잡 한 주제 이며 따라서이 가이드는 완전 한 유의 하시기 바랍니다. 만약 당신이이 가이드에 기여할 수 있습니다, “문서”에서 코르도바의 버그 추적기 문제 파일 주시기 바랍니다. 이 가이드는 일반 코르도바 개발 (모든 플랫폼)을 적용할 수 있도록 설계 되었습니다 하지만 특별 한 플랫폼 특정 고려 사항이 기록 됩니다.

이 가이드에서는 다음 항목을 설명합니다.

  • 허용 된 사이트 목록
  • Iframe 및 콜백 Id 메커니즘
  • 인증서 고정
  • 자체 서명 된 인증서
  • 암호화 된 저장소
  • 일반 팁
  • 권장된 하는 문서 및 기타 리소스

허용 된 사이트 목록

  • 읽기 및 이해 허용 안내

  • 기본적으로 새로 만든된 응용 프로그램에 허용 된 액세스를 통해 모든 도메인 수는 <access> 태그: <access origin="*"> 는 허용 된 사이트 목록에 대 한 평가에 대 한 네트워크 요청을 원하는 경우이 변경만 액세스 해야 하는 도메인을 허용 하는 것이 중요 하다. 이것에 있는 응용 프로그램 수준 구성 파일을 편집 하 여 수행할 수 있습니다: {project}/config.xml (최근 프로젝트의 경우) 또는 {project}/www/config.xml (이전 프로젝트)

  • 그러나 안 드 로이드의 Whitelist 코르도바에 2.9.x 안전한 것으로 간주 됩니다,, foo.com는 허용 된 사이트 목록에 포함 되어, foo.com.evil.com 허용 시험을 통과할 수 있을 것 이라고 밝혀졌다. 이 고정 코르도바에 3.x를.

  • 안 드 로이드 API 10 및 아래에, 허용 된 도메인 작동 하지 않습니다 iframe에 대 한 WP8 및 XMLHttpRequest와. 즉, 공격자가 어떤 도메인 iframe에서 로드할 수 있습니다 코르도바 JavaScript 개체와 해당 하는 기본 Java 개체 모든 스크립트는 iframe 내에서 해당 페이지에 직접 액세스할 수 있습니다. 이러한 플랫폼에 대 한 응용 프로그램을 작성할 때 고려 이걸 받아 해야 합니다. 실제로 10 보다 더 높은 안 드 로이드 API를 대상 하 고는 가능 하면 사용 하지 않는 iframe 로드 외부 콘텐츠-inAppBrowser 플러그인 또는 다른 제 3 자 플러그인을 사용 다는 것을 확인 하는 것이 즉.

  • 코르 도우 바 3.6.0, 현재 안 드 로이드에 지금 필요는 허용 된 응용 프로그램의 외부 Url을 응용 프로그램에서 링크를 해당 Url 생성 하는 경우. 당신이 응용 프로그램을 생성 하는 경우 tel: , geo: , sms: , intent: 또는 유사한 Url 또는 외부 콘텐츠를 사용자의 브라우저에서 열어 기대 다음 업데이 트를 허용 해야 합니다에 대 한 링크를 제공 합니다. 자세한 내용은 화이트 리스트 가이드를 참조 하십시오.

Iframe 및 콜백 Id 메커니즘

콘텐츠 허용 도메인 iframe에서 제공 하는 경우 해당 도메인 네이티브 코르 도우 바 다리에 접근이 있을 것 이다. 즉, 만약 제 3 자 광고 네트워크를 허용은 iframe 통해 그 광고를 게재, 그것은 가능한 악의적인 광고 iframe 탈 옥 하 고 악의적인 동작을 수행할 수 있을 것입니다. 이 때문에, 일반적으로 사용 하면 안 iframe iframe 콘텐츠를 호스팅하는 서버를 제어 하지 않는 한. 또한 참고 타사 플러그인 광고 네트워크를 지원 하기 위해 사용할 수 있습니다. 참고가이 문을 iframe 연결을 포함 한 모든 것을 가로채 iOS에 대 한 사실이 아니다.

인증서 고정

코르 도우 바는 진정한 인증서 고정을 지원 하지 않습니다. 이것에 주요 방 벽은 차단 검사는 서버 인증서의 SSL 연결에 대 한 안 드 로이드 네이티브 Api의 부족 이다. (비록 그것은 안 드 로이드에서 자바에 있는 JSSE를 사용 하 여 고정 하는 것을 증명서 할 수, 안 드 로이드 webview 작성 된 c + +, 및 서버 연결을 webview 울퉁불퉁하거나 당신을 위해, 그래서 불가능 거기 자바와 JSSE를 사용 하 여.) 아파치 코르도바 여러 플랫폼에서 일관 된 Api를 제공 하기 위한 것입니다, 이후 그 일관성 휴식 주요 플랫폼에 기능을가지고 있지.

인증서 고정, 응용 프로그램이 시작 될 때 서버의 공개 키 (지문) 예상 값은 검사 또는 응용 프로그램의 수명 동안 다른 다양 한 시간에 근접 하는 방법이 있다. 할 수 있는 코르도바에 사용할 수 있는 타사 플러그인이 있습니다. 그러나, 이건 사실 인증서는 자동으로 서버에 모든 연결에서 예상 값을 확인 합니다 고정과 동일 합니다.

자체 서명 된 인증서

서버에 자체 서명 된 인증서를 사용 하 여 권장 하지 않습니다. SSL을 원하는 경우 다음 것이 좋습니다 서버 제대로 잘 알려진 CA (인증 기관)에서 서명 된 인증서는. 인증서 고정 사실 할 수 없다는 게 중요 합니다.

이유는 어떤 서버 인증서를 장치에 의해 유효한 것으로 간주 될 수 있는 인증서 체인 유효성 검사 우회 자체 서명 된 인증서를 수락. 이 남자-인-더-중간 공격에 통신을 엽니다. 뿐만 아니라 차단 및 장치와 서버 간의 모든 통신을 읽을 뿐만 아니라 통신 수정 해커에 대 한 매우 쉽게 된다. 장치는 서버의 인증서를 신뢰할 수 있는 CA에서 서명 확인 하지 않습니다 때문에 일이 모를 것입니다. 장치 서버 예상 하는 증거가 있다. 남자-인-더-중간 공격을 하 고의 용이성 때문에 자체 서명 된 인증서를 수락만 소폭 보다 낫다 단지 신뢰할 수 없는 네트워크에 http 대신에 https 실행 합니다. 예, 트래픽을 암호화 될 것입니다, 하지만 암호화는 수동 관측을 제외 하 고 쓸모 없는 그렇게는 남자-인-중간, 액세스할 수 있습니다. 있도록 한 남자-인-더-중간에서 키로 암호화 될 수 있습니다. 사용자가 SSL 안전, 신뢰 하 고이 게 될 것 이라고 신중 하 게 그것은 불안, 그래서 SSL 사용 된다 오해의 소지가. 이 신뢰할 수 있는 네트워크에서 사용 하는 경우 (즉, 당신이 완전히 통제 기업 안에 있다면), 그 후에 자체 서명 된 인증서는 권장 하지 않습니다. 신뢰할 수 있는 네트워크에 두 개의 추천은 그냥 네트워크 자체는 신뢰할 수 있기 때문에 http를 사용 하거나 인증서 (자체 서명 되지) 신뢰할 수 있는 CA에 의해 서명. 네트워크는 신뢰할 수 있는 또는 그것은.

여기에 설명 된 원칙 아파치 코르도바를 특정 하지 않습니다, 그리고 그들은 모든 클라이언트-서버 통신에 적용.

코르 도우 바 안 드 로이드를 실행 하는 경우 사용 하 여 android:debuggable="true" 응용 프로그램에서 매니페스트 허용 한다 SSL 오류 인증서 체인 유효성 검사 오류 자체 서명 된 인증서에. 이 구성에서 자체 서명 된 인증서를 사용할 수 있습니다 하지만 이것은 프로덕션 환경에서 응용 프로그램을 사용 해야 하는 구성. 그것은 응용 프로그램 개발 중에 사용할 수 의미 합니다.

암호화 된 저장소

(미정)

일반 팁

안 드 로이드 진저 브레드를 사용 하지 마십시오!

  • 10 보다 높은 분 대상 sdk 레벨을 설정 합니다. API 10 진저, 그리고 진저 Google 또는 장치 제조 업체에 의해 더 이상 지원 되지 않습니다 따라서 코르도바 팀에 의해 추천.
  • 진저 안전한 것으로 표시 되었습니다. 그리고 하나는 대부분의 모바일 Os http://www.mobilemag.com/2012/11/06/andriod-2-3-gingerbread-security/ 대상.
  • 안 드 로이드에 허용 된 진저 브레드 또는 낮은 작동 하지 않습니다. 즉, 공격자는 다음 코르도바 Api의 모든 액세스 및 개인 데이터를 도용, 프리미엄 요금 번호로 SMS 메시지를 보낼 다른 악의적인 행위를 수행 하는 액세스를 사용할 수 있는 iframe에 악성 코드를 로드할 수 있습니다.

InAppBrowser를 사용 하 여 외부 링크에 대 한

  • InAppBrowser를 사용 하 여 모든 외부 웹사이트에 링크를 열 때. 이것은 도메인 이름이 고 InAppBrowser는 네이티브 브라우저의 보안 기능을 사용 합니다 웹사이트에는 영향을 주지 것입니다 있기 때문에 응용 프로그램에 직접 콘텐츠를 포함 하 여 코르도바 환경에 대 한 액세스 허용 보다 훨씬 안전 합니다. 타사 웹 사이트를 신뢰 하 고 응용 프로그램에 직접 포함 하는 경우에 그 제 3 자 웹사이트 악성 웹 콘텐츠에 연결할 수 있습니다.

모든 사용자 입력의 유효성을 검사합니다

  • 항상 응용 프로그램을 허용 하는 모든 입력의 유효성을 검사 합니다. 여기에 사용자 이름, 암호, 날짜, 업로드 된 미디어 등에 포함 됩니다. 공격자는 HTML과 JS 자산 (응용 프로그램을 디컴파일 또는 chrome://inspect 같은 디버깅 도구를 사용 하 여 중) 조작할 수 있는,이 유효성 검사도 수행 해야 당신의 서버에 모든 백엔드 서비스에 데이터를 전달 하기 전에 특히.
  • 다른 소스에 데이터 유효성을 검사 해야: 사용자 문서, 연락처, 푸시 통지

중요 한 데이터를 캐시 하지 않습니다

  • 사용자 이름, 암호, 지리적 위치 정보 및 기타 중요 한 데이터를 캐시 하는 경우 다음 그것 수 잠재적으로 나중에 검색할 권한이 없는 사용자 또는 응용 프로그램에 의해.

당신이 무슨 일을 하는지 알지 않으면 eval ()을 사용 하지 마십시오

  • 자바 스크립트 함수 eval () 학대의 오랜 역사를가지고 있습니다. 잘못 사용 하면 그것은 주입 공격, 어려움, 및 느린 코드 실행 디버깅을 위해 코드를 열 수 있습니다.

소스 코드 보안 가정 하지 마십시오

  • 코르 도우 바 응용 프로그램을 네이티브 컨테이너에 포장 얻을 HTML과 자바 스크립트 자산에서 빌드 이후 안전 코드를 고려해 서는 안됩니다. 리버스 엔지니어링 코르도바 응용 가능 하다.

권장된 하는 문서 및 기타 리소스