IT_Programming/Android_Java

[펌] 안드로이드 : Webview 세큐리티 문제. JavascriptInterface

JJun ™ 2014. 7. 21. 03:09



 출처

 : http://storyj.net/안드로이드-webview-세큐리티-문제-javascriptinterface/






Android어플에서 웹뷰의 html에 android내부 메소드 등을 호출 할 수 있는 기능이

JavascriptInterface입니다.

그 방법은 이하 페이지 등에서 찾을 수 있네요.

http://www.techdoctranslator.com/android/webapps/webview

 

 

이번에 쓰고 싶은 것은 그 사용법에 대해서가 아니라 이것이 세큐리티에 문제가 있다는 겁니다.

개인적으로 어플을 만들때도 꽤 위험한 세큐리티 홀이기 때문에 이 정도는 대비해줘야 한다고 생각됩니다.

공격 패턴은 간단히 정리하면 어플의 실행 권한 범위 내에서 어플의 데이터를 검색, 누설 ​​또는 변조가능합니다.

 

#세큐리티 홀 대상#

Android 4.4.x에서 addJavascriptInterface를 사용하는 앱
Android 3.0-4.12에서 WebView를 사용하는 앱

 

아래와 같은 대비 방법이 있습니다.

1. 가능 하면 자바스크립을 무효화. 아마 기본 설정이 무효화 되어 있을 겁니다만 아래 코드로 유효화 시키곤 합니다.

    setJavaScriptEnabled(true) 


2. 신뢰 가능한 URL만 관람가능하게 + 모든 액티브 콘텐츠에 HTTPS를 사용(변조 방지)


3. removeJavascriptInterface로 OS의JavascriptInterface(searchBoxJavaBridge_, accessibilityTraversal, accessibility)삭제.

   이건 메이커 고유의 JavascriptInterface는 어쩔 수 없네요.

   removeJavascriptInterface(“searchBoxJavaBridge_”);