Android WebView 파일 및 콘텐츠 접근 허용

Android WebView 파일 또는 콘텐츠 접근 허용

설명

WebView에서 allowFileAccess, allowContentAccess, allowFileAccessFromFileURLs, allowUniversalAccessFromFileURLs를 불필요하게 활성화하면 WebView 콘텐츠가 로컬 파일 또는 콘텐츠 제공자 데이터에 접근할 수 있습니다. 외부 콘텐츠와 결합되면 앱 내부 데이터 노출로 이어질 수 있습니다.

잠재적 영향

  • 로컬 파일 또는 content URI 데이터 노출
  • WebView 기반 권한 경계 우회
  • XSS와 결합된 민감 정보 유출

해결 방법

  1. 파일 또는 콘텐츠 접근이 필요하지 않으면 비활성화합니다.
  2. 외부 웹 콘텐츠와 로컬 파일 접근을 같은 WebView에서 혼합하지 않습니다.
  3. 필요한 URI만 명시적으로 제공하고 Content Security Policy와 입력 검증을 적용합니다.

예시

변경 전

java
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

변경 후

java
webView.getSettings().setAllowFileAccess(false);
webView.getSettings().setAllowContentAccess(false);
webView.getSettings().setAllowUniversalAccessFromFileURLs(false);

설명:

  • 변경 전: WebView에서 file:// 또는 content:// 접근을 허용하면 로드된 콘텐츠가 앱 로컬 파일이나 콘텐츠 제공자 데이터에 접근할 위험이 커집니다.
  • 변경 후: setAllowFileAccess(false)와 setAllowContentAccess(false)로 파일 시스템 및 콘텐츠 URI 접근을 비활성화하고 파일 URL에서의 범용 접근도 끕니다. file:///android_asset과 file:///android_res의 앱 리소스는 파일 접근 설정과 별도로 접근 가능합니다.

참조