Android P / 9.0 http 네트워크 요청 이상

2744 단어 googlePlayandroidbug
이상 원인
구 글 은 사용자 데이터 와 기기 의 안전 을 위해 차세 대 안 드 로 이 드 시스템 (Android P) 애플 리 케 이 션 에 암호 화 연결 기본 사용 을 요구 할 것 이 라 고 밝 혔 다. 이 는 안 드 로 이 드 P 가 암호 화 되 지 않 은 모든 연결 을 앱 이 사용 하지 못 하도록 한 다 는 것 을 의미 하기 때문에 안 드 로 이 드 P 시스템 을 실행 하 는 안 드 로 이 드 장 치 는 수신 이나 전송 데이터 와 관 계 없 이 미래 에 공개 적 으로 전송 할 수 없다.차세 대 (Transport Layer Security) 전송 계층 보안 프로 토 콜 을 사용 해 야 하 며, Android Nougat 와 Oreo 는 영향 을 받 지 않 습 니 다.
따라서 Android P 에서 사용 HttpUrlConnection 시 이상 신고
1
W/System.err: java.io.IOException: Cleartext HTTP traffic to **** not permitted

OKHttp 를 사용 할 때 도 이상 을 알 릴 수 있 습 니 다.
1
java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security policy

Android P 시스템 의 장치 에서 암호 화 되 지 않 은 명문 데 이 터 를 사용 하 는 http 네트워크 요청 을 적용 하면 네트워크 요청 을 할 수 없고 https 는 영향 을 받 지 않 습 니 다. 마찬가지 로 웹 뷰 가 내장 되 어 있 으 면 webview 도 https 요청 만 사용 할 수 있 습 니 다.안 드 로 이 드 P 의 모든 앱 이 TLS 암호 화 를 사용 해 야 인터넷 체험 을 낮 출 수 있다 는 오해 가 있 습 니 다. 사실상 일부 오래된 서버 의 연결 에 대해 앱 이 굳이 명시 적 으로 전송 하려 면 개발 자가 앱 의 네트워크 보안 설정 을 변경 하여 이러한 연결 을 허용 해 야 한 다 는 오해 입 니 다.
해결 방안
  • 앱 내 모든 요청 을 Https
  • 로 변경
  • targetSdkVersion 을 27 이하 로 변경 하 였 으 나, googlePlay 는 2019 / 11 / 8 이후 컴 파일 버 전 을 최소 28 로 요구 하 였 으 며, 이 방법 은 지원 되 지 않 습 니 다
  • http 요청 방법 이 res 다음 에 xml 디 렉 터 리 를 추가 한 다음 이름 을 만 들 수 있 습 니 다. network_security_config.xml 파일 (이름 자체), 내용 은 다음 과 같 습 니 다. http 요청 을 허용 한 다 는 뜻 입 니 다.
    1
    2
    3
    4
    5
    6
    7
    
    
    
    
    
     
    
    
    

    그리고 AndroidManifest.xml 파일 에 있 는 애플 리 케 이 션 탭 에 한 줄 속성 을 추가 합 니 다.
    1
    2
    3
    4
    5
    6
    7
    8
    
    
    
        ...
    
    
    

    방법 2 목록 파일 에 추가 android:usesCleartextTraffic=”true” 속성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    
    
        
        
            
        
    
    

    더 많은 인자 수정:https://developer.android.com/training/articles/security-config#trust-anchors

  • 참조 링크
    https://www.jianshu.com/p/57047a84e559
    https://android-developers.googleblog.com/2018/04/protecting-users-with-tls-by-default-in.html
    https://android-developers.googleblog.com/2018/04/dns-over-tls-support-in-android-p.html

    좋은 웹페이지 즐겨찾기