Intro
SSL Handler가 구현되어있는 최초 버전 (버전코드 1번)이 테스트 트랙에 올라가 있다는 이유로 구글플레이에서 삭제되었다.
당장 해당 트랙을 비활성화 한 뒤 업데이트를 시도해 보았지만 Cross App Scripting Vulnerability로 리젝되어 클라이언트의 요청이 지속되는 상황이었다.
Vulnerability | APK Version(s) | Past Due Date |
---|---|---|
Cross-app Scripting Your app(s) are using a WebView that is vulnerable to cross-app scripting. To address this issue, follow the steps in this Google Help Center article. |
33 | August 23, 2021 |
저 버전코드가 보이는가? 참고로 라이브 서비스중이었던 버전코드는 13이었다.
개빡친다
많고 많은 티스토리 블로그의 해결방법은 딱 두가지였는데,
내가 시도했던 방법은 이러하다.
AndroidMenifest 수정
많고 많은 티스토리 블로그들의 해결방법을 보면 아래 한 줄을 AndroidMenifest에 추가해줌으로써 해결할 수 있다고 쓰여있다.
<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="true" />
그러나 프로젝트에는 이미 해당 메타데이터가 추가되어있는 상태였다.
webview target url string to final
private final static String target_url = "https://블라블라";
...
webView.loadUrl(target_url);
evaluateJavascript 보안
Scheme이 "javascript:" 인 것을 죄다 evaluateJavascript로 바꿔주고,
그마저도 사전에 약속된 스크립트가 아니면 실행하지 않도록 입구컷 시켰다.
구글한테 입구컷당했다.
FCM으로 넘어오는 url 검사
bundle.getString("url").contains(target_url)
위 코드가 true일 때만 해당 URL을 로드하도록 했다.
안된다.
android:exported="false" 설정
해당 속성을 웹뷰가 있는 Activity에 넣으면 된다고 한다.
근데.. 카카오톡 등 다른 앱 intent 사용은 안하시게요? 역시 패스....하려다가 혹시나 싶어 넣어봤다.
앱 실행이 안된다 ㅋㅋ
Unity Project 제거
해당 프로젝트는 Unity As A Library를 이용해 Unity Player Activity와 웹뷰가 상호 통신을 한다.
일단은.. 인텐트로 처리하니 빼보자..
***구글: 응~ 안돼~ 돌아가~
Camera / File Choose Handler 제거
카메라로 사진을 찍거나 파일선택기로 파일을 가져오는 것도 역시나 인텐트로 처리했으니 일단은 지워보았다.
다른 웹뷰 서비스들은 잘 올라가있는데 이게 맞을 리 없지.
죄다 지우고 함수 하나씩 살리기
개노가다 ON
버전코드가 33(지금은 40)까지 올라간 이유가 있다.
살리다보니 handleIntent 함수에서 딱 걸렸다.
혹시?
혹시나 싶어 FCM으로 넘어오는 url 검사 부분을 주석처리 해봤다.
결론
구글새끼들은 loadUrl
메서드로 어떤 Url을 호출하는지에 관심이 없다.
그 Url이 final
로 선언한 Url을 포함하고 있더라도..
단지 해당 Url이 final
인지 아닌지에만 관심이 있는 것 같다.
어휴..
해당부분은 이렇게 수정해 주고 업데이트를 올렸다.
private final static String target_url = "https://블라블라";
...
if(bundle.getString("url") != null) {
final String target = target_url + bundle.getString("url");
webView.loadUrl(target);
}
fcm 데이터에 url 전체를 줬었는데 수정을 요청해서 url path만 주도록 바꿨다.
하........현타온다............
'Mobile App > Android' 카테고리의 다른 글
[Android] FCM 메세지 background에서 실행 안될때 - API level 31 (안드로이드 12) (3) | 2022.03.15 |
---|---|
[Gradle] 안드로이드 빌드 버전 자동으로 관리하기 (1) | 2021.12.14 |
하이브리드 앱 테스트 환경에서 카톡로그인 intent 처리 (0) | 2021.05.24 |
안드로이드 웹뷰 뒤로가기 버튼 이벤트 만들기 (1) | 2021.05.12 |
안드로이드 웹뷰 사용 및 설정, SSL 무시 (0) | 2021.05.12 |