動態註冊broadcast的安全考慮

2022-07-21 03:24:09 字數 992 閱讀 1418

一、android service通知activity更新

方式有1. service 通過廣播的形式傳送broadcast,向這個activity的內部類發廣播的訊息來更新介面

2. service直接向activity發intent,把activity的launchmode設定為singleinstance

二、安全性

這邊關注第1種方式的廣播和接收intent安全,如果不對廣播的傳送和接收進行判斷,會有很大的安全隱患

在我的場景中,是動態註冊broadcast,考慮安全如下:

a、針對sendbroadcast

1.通常採用的安全方式有setpackage設定包名

intent.setaction("com.example.tianqitong.recv");

intent.setpackage("com.example.tianqitong");

sendbroadcast(intent);

2.可以通過使用localbroadcastmanager,確保了應用程式外部的任何元件都收不到你廣播的intent

3.設定許可權

sendbroadcast(intent,"broadcast.permission");

還要加上android:protectionlevel許可權級別

//宣告使用許可權

//自定義許可權

b、針對receive

1.可以通過使用localbroadcastmanager,使其他應用程式也不能向你的接收器傳送廣播

2.對於動態註冊的廣播可以通過類似registerreceiver(broadcastreceiver, intentfilter, string, android.os.handler)的介面指定傳送者必須具備的permission

其中string為指定的permission,必須加android:protectionlevel

譬如:參考:

安卓四大元件學習之Broadcast

broadcast 廣播 安卓中,廣播是一種常用與應用程式之間進行訊息傳遞的方式。首先講需要傳遞的資訊和用於過濾的資訊裝入 action category 並通過sendbroadcast sendorderbroadcast 或sendstickybroadcast 方法,把 intent物件以廣...

Dubbo ZooKeeper註冊中心的安裝

安裝dubbo註冊中心 zookeeper 3.4.6 環境 centos6.5 jdk7 dubbo 建議使用 zookeeper 作為服務的註冊中心。註冊中心伺服器 192.168.3.71 配置,安裝zookeeper 1 修改作業系統的 etc hosts檔案中新增 zookeeper se...

動態註冊和靜態註冊

1 四大元件只有廣播接收者可以不在清單檔案中註冊 2 靜態註冊 在清單檔案中通過宣告乙個receiver節點指定intent filter,這種方式就是靜態註冊 3 動態註冊 registerreceiver receiver,filter 4 登出的方法 unregisterreceiver re...