# 안드로이드 웹뷰 보안 코딩 : Android Webview Secure Coding
### 참고
- https://www.checkmarx.com/2017/11/16/android-webview-secure-coding-practices/
- https://stackoverflow.com/questions/53631536/in-android-javascript-interface-injection-vulnerability?rq=1 : https 사용하면 된다는 내용.
### 일반 텍스트 콘텐츠로드
- SSL, TLS 미적용시 MitM(Man-in-the-Middle:중간자공격)에 취약하게됨.
> HTTPS적용
- API 23(Mashmallow)이후에는 "android: useCleartextTarffic"(default:true) 플래그를 설정할 수 있습니다.
- SSL 오류 처리 : WebView에서 SSL/TLS 로드중 오류가 감지되면 웹콘첸츠를 로드 하지 않습니다.
* 이러한 오류는 서버인증서가 승인된 기관에의해 서명되지 않은 경우입니다.
useCleartextTarffic
android:targetSandboxVersion="1"
### Enabling Javascript
- Javasript 실행은 기본적으로 비활성화되어 있습니다.
- setJavaScriptEnabled 상태를 변경할 수 있습니다.
- XSS(Cross-Site-Scripting) 공격에대한 복원력 , MitM(중간자)공격의 결과가 줄어듭니다.
- 모바일 앱의 일반적인 공격 경로는 광고입니다.
- WebView에서 악성코드가 주입되어 앱 사용자를 보호하려면, Javascript를 차단해야합니다.
##### ■ 안드로이드 영역에 접근해 Player이름이 표시됨.
```html
1 |
|
100 |
```
##### ■ WebView의 페이지가 evilpage.com을 변경됨.
```html
>결론적으로 가능한 경우 JavaScript를 비활성해야 한다.
```
```java
webView.setJavaScriptEnabled(false);
```
## @ 결론 - setJavaScriptEnable(false)
말이 안되는것 같지만,
hybrid앱을 구성할때 javascript를 이용한 Bridge를 구성하지 말고,
data url schema를 구성해서 호출되도록 해야한다.
### Accessing Local Resources
```xml
```
댓글