Tài liệu này trình bày chi tiết các cách giám sát hoạt động nhạy cảm, chẳng hạn như hoạt động đăng nhập của người dùng và giao dịch mua hàng trực tuyến.
FLAG_SECURE
FLAG_SECURE
là một Cờ cửa sổ cho biết Android không cho phép chụp ảnh màn hình hoặc hiển thị chế độ xem cửa sổ trên màn hình không bảo mật (chẳng hạn như Truyền màn hình). Điều này hữu ích cho những ứng dụng cần bảo vệ thông tin nhạy cảm, chẳng hạn như ứng dụng ngân hàng hoặc trình quản lý mật khẩu. Khi một cửa sổ được gắn cờ bằng FLAG_SECURE
, Android sẽ ngăn việc chụp ảnh màn hình và ngăn cửa sổ đó xuất hiện trên màn hình không bảo mật, chẳng hạn như TV hoặc máy chiếu. Điều này giúp bảo vệ thông tin đang hiển thị trong cửa sổ khỏi bị những người không được phép truy cập.
Cách này giúp giảm thiểu hành vi gian lận
Một ứng dụng hoặc thực thể độc hại có thể truy xuất ảnh chụp màn hình ở chế độ nền. Khi trạng thái của ứng dụng thay đổi thành nền, bạn có thể dùng FLAG_SECURE
. Khi ảnh chụp màn hình được chụp, hình ảnh thu được sẽ trống.
FLAG_SECURE
cũng hỗ trợ các trường hợp sử dụng tính năng chia sẻ màn hình từ xa. Không phải lúc nào cũng là ứng dụng độc hại truy xuất ảnh chụp màn hình, các ứng dụng chia sẻ màn hình hợp pháp cũng thường được dùng trong các tình huống gian lận.
Triển khai
Đối với những khung hiển thị có thông tin mà bạn muốn bảo vệ, hãy thêm nội dung sau:
Kotlin
window?.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE )
Java
window.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE );
Các phương pháp hay nhất
Điều quan trọng cần lưu ý là phương pháp này không đáng tin cậy trong việc ngăn chặn các cuộc tấn công lớp phủ. Trong một số trường hợp, API này không dự đoán chính xác liệu tính năng ghi màn hình có đang hoạt động hay không, tuy nhiên, API này vẫn đáp ứng được hầu hết các trường hợp sử dụng. Để giảm thiểu các cuộc tấn công lớp phủ, hãy đọc phần tiếp theo về các quyền HIDE_OVERLAY_WINDOWS
.
HIDE_OVERLAY_WINDOWS
HIDE_OVERLAY_WINDOWS
là một quyền được thêm vào trong Android 12, cho phép ứng dụng của bạn chọn không cho phép các lớp phủ ứng dụng được vẽ lên trên ứng dụng đó. Trong Android 12, chúng tôi đã tăng cường biện pháp để ngăn chặn việc thu thập quyền SYSTEM_ALERT_WINDOW
, về cơ bản là cho phép ứng dụng của bạn chặn lớp phủ của các ứng dụng bên thứ ba.
Cách này giúp giảm thiểu hành vi gian lận
Khi bật quyền HIDE_OVERLAY_WINDOWS
, bạn sẽ chọn không cho phép các lớp phủ ứng dụng xuất hiện trên ứng dụng của mình. Quyền này cung cấp một cơ chế bảo vệ chống lại các cuộc tấn công lén lút.
Triển khai
Để bật quyền này, hãy thêm HIDE_OVERLAY_WINDOWS
vào tệp kê khai của dự án.
Các phương pháp hay nhất
Giống như mọi quyền khác, bạn phải tin tưởng mọi ứng dụng lớp phủ ít nhất bằng mức độ tin tưởng đối với mọi ứng dụng khác trên thiết bị. Nói cách khác, ứng dụng của bạn không được phép cho phép các ứng dụng khác vẽ lớp phủ lên ứng dụng đó, trừ phi bạn biết ứng dụng khác đó là đáng tin cậy. Việc cho phép một ứng dụng vẽ lên các ứng dụng khác có thể gây nguy hiểm vì ứng dụng đó có thể đánh cắp mật khẩu hoặc đọc tin nhắn.