Cách khắc phục lỗ hổng giao diện JavaScript nhạy cảm

Thông tin này dành cho nhà phát triển có một ứng dụng chứa Lỗ hổng giao diện JavaScript nhạy cảm.

Hiện trạng

Vui lòng tham khảo thông báo trên Play Console

Sau thời hạn nêu trên Play Console, chúng tôi có thể xoá mọi ứng dụng chưa khắc phục lỗ hổng bảo mật khỏi Google Play.

Việc cần làm​

  1. Mở thông báo mà Google Play đã gửi tới địa chỉ email của chủ sở hữu tài khoản để xem ứng dụng nào bị ảnh hưởng và thời hạn xử lý các vấn đề.
  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 bổ sung

Theo Chính sách về việc sử dụng sai trái thiết bị và mạng, “Ứng dụng hoặc mã của bên thứ ba (ví dụ: SDK) có JavaScript tải trong quá trình chạy không được cho phép hành vi có nguy cơ vi phạm Chính sách dành cho nhà phát triển của Play”. 

Trong bài viết này, chúng tôi đề cập đến mọi đối tượng để lộ chức năng cho một WebView thông qua phương thức addJavascriptInterface của một WebView dưới dạng giao diện JavaScript như nêu trong bài viết Xây dựng ứng dụng web trong WebView trên Blog Google Developers.

Lớp lỗ hổng này cho phép các hành vi có nguy cơ vi phạm Dữ liệu người dùngPhần mềm độc hại có thể xảy ra thông qua giao diện JavaScript. Tùy thuộc vào các giao diện đã bị lộ, hành vi vi phạm này có thể dẫn đến việc thu thập và lọc dữ liệu không mong muốn, đi kèm với các ứng dụng có khả năng gây hại trong khi nhà phát triển ứng dụng hoặc SDK không nắm được.

Bạn nên ngăn chặn lỗ hổng này theo một trong những 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:

  1. Dùng lệnh gọi đến addJavascriptInterface để đảm bảo không có đối tượng nào được thêm vào giao diện JavaScript.
  2. 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 tin cậy.

Lựa chọn 2: Đảm bảo rằng bạn không để lộ chức năng nhạy cảm thông qua giao diện JavaScript

Hãy đảm bảo rằng không có chức năng nhạy cảm nào (chẳng hạn như lệnh gọi API của Android có yêu cầu quyền) được thêm vào giao diện JavaScript. Điều này bao gồm việc không thu thập dữ liệu nhạy cảm như thông tin về người dùng/thiết bị hoặc để lộ những API như API hỗ trợ tiếp cận hoặc tin nhắn SMS. Có nhiều cách để khắc phục lỗ hổng theo lựa chọn này:

  1. Triển khai lại mọi chức năng yêu cầu các quyền truy cập thông tin nhạy cảm hoặc thu thập thông tin nhạy cảm để được mã gói trong ứng dụng gọi đến. Đảm bảo cung cấp thông tin công bố nổi bật cho người dùng.
  2. Xoá mọi chức năng cấp quyền truy cập vào dữ liệu người dùng hoặc chức năng nhạy cảm mà có thể truy cập được qua giao diện.

Lựa chọn 3: Đảm bảo rằng WebView của bạn không để lộ chức năng nhạy cảm cho nội dung không tin cậy

Nếu chứa chức năng nhạy cảm, WebView có thể không tải JavaScript tuỳ ý từ các nguồn không xác định và phải cung cấp thông tin công bố nổi bật về dữ liệu hoặc chức năng đang dùng. Hãy đảm bảo rằng bạn chỉ tải vào WebView những nội dung và URL mà nhà phát triển ứng dụng đã giới hạn phạm vi một cách nghiêm ngặt.

Trong trường hợp lỗ hổng bảo mật không được khắc phục, ứng dụng sẽ bị xử lý nếu có nguy cơ vi phạm chính sách của Play.

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

Nếu bạn đã tham khảo chính sách và cho rằng có thể có sự nhầm lẫn trong quyết định của chúng tôi, vui lòng liên hệ với nhóm hỗ trợ về chính sách của chúng tôi. Chúng tôi sẽ phản hồi trong vòng 2 ngày làm việc.

Cảm ơn bạn đã không ngừng đóng góp để giúp Google Play mang lại trải nghiệm hữu ích cho cả nhà phát triển và người dùng.

 

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?

Bạn cần trợ giúp thêm?

Hãy thử các bước tiếp theo sau:

Tìm kiếm
Xóa nội dung tìm kiếm
Đóng tìm kiếm
Trình đơn chính
6412714964019855690
true
Tìm kiếm trong Trung tâm trợ giúp
true
true
true
true
true
92637
false
false