license: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations
다음 가이드 코르도바 응용 프로그램을 개발할 때 고려해 야 할 몇 가지 보안 모범 사례를 포함 한다. 보안은 매우 복잡 한 주제 이며 따라서이 가이드는 완전 한 유의 하시기 바랍니다. 만약 당신이이 가이드에 기여할 수 있습니다, “문서”에서 코르도바의 버그 추적기 문제 파일 주시기 바랍니다. 이 가이드는 일반 코르도바 개발 (모든 플랫폼)을 적용할 수 있도록 설계 되었습니다 하지만 특별 한 플랫폼 특정 고려 사항이 기록 됩니다.
읽기 및 이해 허용 안내
안 드 로이드 API 10 및 아래에, 허용 된 도메인 작동 하지 않습니다 iframe에 대 한 WP8 및 XMLHttpRequest와. 즉, 공격자가 어떤 도메인 iframe에서 로드할 수 있습니다 코르도바 JavaScript 개체와 해당 하는 기본 Java 개체 모든 스크립트는 iframe 내에서 해당 페이지에 직접 액세스할 수 있습니다. 이러한 플랫폼에 대 한 응용 프로그램을 작성할 때 고려 이걸 받아 해야 합니다. 실제로 10 보다 더 높은 안 드 로이드 API를 대상 하 고는 가능 하면 사용 하지 않는 iframe 로드 외부 콘텐츠-inAppBrowser 플러그인 또는 다른 제 3 자 플러그인을 사용 다는 것을 확인 하는 것이 즉.
콘텐츠 허용 도메인 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 오류 인증서 체인 유효성 검사 오류 자체 서명 된 인증서에. 이 구성에서 자체 서명 된 인증서를 사용할 수 있습니다 하지만 이것은 프로덕션 환경에서 응용 프로그램을 사용 해야 하는 구성. 그것은 응용 프로그램 개발 중에 사용할 수 의미 합니다.
(미정)