Android WebView JavaScript 활성화

Android WebView JavaScript 활성화

설명

WebView에서 JavaScript를 활성화하면 로드된 페이지가 스크립트를 실행할 수 있습니다. 신뢰할 수 없는 URL, 사용자 입력으로 구성된 HTML, 노출된 JavaScript 인터페이스와 함께 사용하면 XSS, 세션 탈취, 앱 내부 API 오용 위험이 커집니다.

잠재적 영향

  • WebView 내 XSS 실행
  • 쿠키, 토큰, 로컬 스토리지 값 노출
  • addJavascriptInterface와 결합된 앱 기능 오용

해결 방법

  1. JavaScript가 필요하지 않은 WebView에서는 비활성화합니다.
  2. JavaScript가 필요하면 신뢰된 도메인만 로드하고 네비게이션을 제한합니다.
  3. 사용자 입력을 HTML로 삽입하지 말고 적절히 이스케이프합니다.

예시

변경 전

java
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(userControlledUrl);

변경 후

java
webView.getSettings().setJavaScriptEnabled(false);
webView.loadUrl("https://example.com/help");

설명:

  • 변경 전: Android WebView에서 JavaScript를 활성화하면 WebView가 로드하는 페이지가 WebView의 페이지 컨텍스트에서 스크립트를 실행할 수 있습니다.
  • 변경 후: JavaScript가 꼭 필요하지 않으면 setJavaScriptEnabled(false)를 사용합니다.

참조