Xử lý lỗ hổng Chèn giao diện JavaScript

Thông tin này dành cho nhà phát triển có (các) ứng dụng chứa lỗ hổng Chèn giao diện JavaScript.

Chuyện gì sẽ xảy ra

Vui lòng tham khảo thông báo trên Play Console của bạn.Sau thời hạn hiển thị trong Play Console, chúng tôi có thể xóa mọi ứng dụng có lỗ hổng bảo mật chưa được khắc phục khỏi Google Play.

Hành động cần thiết

  1. Đăng nhập vào Play Console và chuyển đến phần Cảnh báo để xem những ứng dụng bị ảnh hưởng và thời hạn giải quyết những vấn đề này.
  2. Cập nhật các ứng dụng bị ảnh hưởng và khắc phục lỗ hổng.
  3. Gửi phiên bản cập nhật của các ứng dụng bị ảnh hưởng.

Sau khi bạn gửi lại, chúng tôi sẽ xem xét lại ứng dụng của bạn. Quá trình này có thể mất vài giờ. Nếu ứng dụng vượt qua quy trình xem xét và được xuất bản thành công thì bạn không cần thực hiện thêm hành động nào. Nếu ứng dụng không vượt qua được quy trình xem xét thì phiên bản ứng dụng mới sẽ không được xuất bản và bạn sẽ nhận được thông báo qua email.

Thông tin chi tiết bổ sung

Những WebViews hiển thị đối tượng cấp ứng dụng với mã JavaScript thông qua addJavascriptInterface và tải nội dung web không tin cậy rất dễ bị lỗ hổng Chèn giao diện JavaScript. Nội dung không đáng tin cậy có thể thực thi bất kỳ phương thức nào có chú thích @JavascriptInterface của đối tượng hiển thị. Điều này dẫn đến việc rò rỉ dữ liệu, hỏng dữ liệu hay thậm chí là thực thi mã tùy ý.

Bạn nên ngăn chặn lỗ hổng này theo một trong các cách sau:

Tùy chọn 1: Đảm bảo rằng WebViews không thêm Đối tượng vào giao diện JavaScript

Hãy đảm bảo rằng không có đối tượng nào được thêm vào giao diện JavaScript của những WebView tải nội dung web không đáng tin cậy. Bạn có thể làm điều này theo hai cách:

 

Sử dụng cuộc gọi đến addJavascriptInterface để đảm bảo không có đối tượng nào được thêm vào giao diện JavaScript.

  1. Xóa đối tượng khỏi giao diện JavaScript trong shouldInterceptRequest bằng removeJavascriptInterface trước khi WebView tải nội dung không đáng tin cậy.

Tùy chọn 2: Đảm bảo rằng WebView không tải nội dung web không đáng tin cậy

Nếu ứng dụng của bạn cần hiển thị đối tượng với giao diện JavaScript của WebView, hãy đảm bảo rằng WebView không tải nội dung web qua kết nối không mã hóa. Bạn có thể đặt android:usesCleartextTraffic thành false trong Manifest hoặc đặt Network Security Config để không cho phép lưu lượng HTTP. Ngoài ra, bạn có thể đảm bảo rằng mọi WebView bị ảnh hưởng đều không tải bất kỳ URL nào sử dụng giao thức HTTP bằng loadUrl.


Hãy đảm bảo rằng WebViews có giao diện JavaScript không tải các URL chưa kiểm tra từ các nguồn không tin cậy (ví dụ: URL từ Intents không đáng tin cậy).

Chúng tôi sẵn sàng trợ giúp

Nếu có câu hỏi kỹ thuật về lỗ hổng bảo mật, bạn có thể đăng lên Stack Overflow và sử dụng thẻ “android-security”. Để biết rõ các bước cần thực hiện nhằm giải quyết vấn đề này, bạn có thể liên hệ với nhóm hỗ trợ nhà phát triển của chúng tôi.

Thông tin này có hữu ích không?

Chúng tôi có thể cải thiện trang này bằng cách nào?
false
Trình đơn chính
18172830595724696451
true
Tìm kiếm trong Trung tâm trợ giúp
true
true
true
true
true
5016068
false
false