Có thể sử dụng quyền RECEIVE_SMS để chặn tin nhắn SMS không?


13

Tôi đã nhận thấy khá nhiều ứng dụng yêu cầu sự RECEIVE_SMScho phép . Hai điều rõ ràng với tôi ở đây:

  • RECEIVE_SMS cho phép ứng dụng "chụp" SMS đến
  • READ_SMS chỉ áp dụng cho SMS đã được lưu trữ

Như một số ứng dụng vừa yêu cầu RECEIVE_SMS, nhưng không phải READ_SMS, tôi đã tò mò: điều này dường như ngụ ý RECEIVE_SMSkhông chỉ nhắm vào phần nhận, mà ứng dụng cũng có thể làm những gì nó muốn với tin nhắn nhận được - ví dụ như đọc nó, sau đó đọc nó âm thầm vứt nó đi (vì vậy người dùng thậm chí không nhận thấy có SMS - đó có thể là cách TAN Trojans hành động để chụp các số nhận dạng cho các giao dịch ngân hàng trực tuyến).

Nhưng một ứng dụng như vậy cũng có thể "chặn" tin nhắn, tức là nhận nó, đọc nó (và xử lý nội dung của nó theo bất kỳ cách nào, ví dụ như chuyển tiếp nó bằng các phương tiện khác như qua IP), và sau đó chuyển nó đi như nếu không có gì xảy ra? Nói cách khác: Nó có thể theo dõi người dùng theo cách này không?

Câu trả lời:


13

Có, nó có thể, nhưng chỉ trên Android 4.3 trở xuống. Điều này được sử dụng ví dụ trong Whatsapp. Khi bạn kích hoạt ứng dụng, Whatsapp sẽ gửi SMS đến số bạn đã báo cáo và ứng dụng sẽ chặn nó một cách lặng lẽ và báo cáo cho các máy chủ rằng nó đã nhận được SMS. Đây là cách tài khoản được gắn với số của bạn.

Tất nhiên, điều này cũng có thể được sử dụng trong các ứng dụng có hại. Nếu một ứng dụng đăng ký làm người nhận SMS với mức độ ưu tiên cao nhất, ứng dụng có thể nghe các tin nhắn SMS đến, xử lý chúng và loại bỏ chúng mà không cần người dùng nhận thấy hoặc chuyển tiếp đến người nghe SMS tiếp theo với mức ưu tiên cao thứ hai.

Điều này đã được làm lại trong Android 4.4 và nếu tôi hiểu chính xác, chỉ có ứng dụng SMS mặc định mới có quyền truy cập vào tất cả SMS đến ( SMS_DELIVER_ACTIONvà các ứng dụng khác có quyền chính xác sẽ chỉ nhận được thông báo về tin nhắn đến ( SMS_RECEIVED_ACTION). Ngoài ra, SMS_RECEIVEDý định là không thể hủy bỏ, nó không thể dừng lại. Tôi giả sử rằng trong Android 4.4, điều này được thực hiện để cho phép người dùng xem tất cả các tin nhắn SMS đến trong ứng dụng mặc định.

Chỉnh sửa: Tìm thấy một số thông tin hữu ích hơn trên Blog Nhà phát triển Android . Tôi sẽ kiểm tra thêm, nhưng điện thoại Android duy nhất của tôi hiện chỉ có WiFi, vì vậy không có SMS: /


Cảm ơn rất nhiều cho những hiểu biết, onik! Không biết về những thay đổi KitKat đó. Với những người đã sẵn sàng, tôi đã hiểu chính xác, ví dụ WhatsApp bây giờ cũng cần có READ_SMSquyền truy cập vào "mã kích hoạt" của nó - hoặc làm các ứng dụng có RECEIVE_SMSquyền "nhận bản sao" ngay bây giờ (ngoại trừ ứng dụng SMS mặc định, sẽ " nhận bản gốc ")?
Izzy

@Izzy Tôi có một câu hỏi về điều này quá. Bây giờ người dùng sẽ thấy các văn bản điều khiển này trực tiếp trong ứng dụng mặc định của họ chứ? Hoặc nó sẽ là một tùy chọn để có thể xem các văn bản "đã tiêu thụ", nhưng không thực sự hiển thị trong ứng dụng văn bản thông thường của bạn?
Cruncher

1
@Izzy Nếu tôi hiểu chính xác, các ứng dụng không được đặt làm ứng dụng SMS mặc định có thể truy cập nhà cung cấp chỉ đọc, nghĩa là chúng không cần sự READ_SMScho phép, nhưng chúng không thể chỉnh sửa SMS (đánh dấu là đã đọc, xóa, v.v. ).
onik

1
@Cruncher Các tin nhắn sẽ hiển thị trong ứng dụng SMS mặc định của bạn, vì chỉ ứng dụng đó mới có thể ghi vào SMSProvider để xóa tin nhắn.
onik

1
"Có nó có thể". Nhưng chỉ có trên Android 4.3 trở xuống. Vì 4.4 SMS_RECEIVED là một ý định không thể hủy bỏ. Xin vui lòng thêm thực tế quan trọng. Xem thêm stackoverflow.com/questions/20021492/
Dòng chảy

10

Như mọi thứ

  1. Android 4.3 trở xuống không có ứng dụng Hangouts: Bất kỳ ứng dụng nào có quyền SMS_RECEIVE đều có thể đọc / hủy tin nhắn SMS đến (ala Whatsapp)
  2. Android 4.3 trở xuống có Hangouts (bật chế độ SMS): Bất kỳ ứng dụng nào có quyền SMS_RECEIVE đều có thể đọc nhưng không hủy bỏ SMS đến
  3. Android 4.4 trở lên: Bất kỳ ứng dụng nào có quyền SMS_RECEIVE đều có thể đọc nhưng không hủy bỏ SMS đến

Trong cả ba trường hợp, READ_SMS sẽ cấp cho ứng dụng quyền đọc tất cả các SMS không chỉ các SMS đến mới.

Như onik đã đề cập, mọi thứ đã thay đổi khá nhiều trong Android 4.4


1
Cảm ơn bạn đã chỉ ra Hangouts có thể tạo sự khác biệt cho Android <4.4! Đoán tương ứng với những gì onik đã chỉ với một ứng dụng đăng ký là người nhận SMS có mức độ ưu tiên cao nhất và Hangouts đang làm chính xác điều đó (vì vậy không có ứng dụng nào khác có thể đứng đầu nó)?
Izzy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.