Android廣播的安全性

廣播的分類

定義分類
  • 系統(tǒng)廣播
    由Android系統(tǒng)內(nèi)部自動發(fā)出,用戶只負責接收
  • 自定義廣播
    由開發(fā)者自己定義的廣播
注冊方式分類
  • 動態(tài)注冊
    在代碼中注冊的
  • 靜態(tài)注冊
    動態(tài)注冊要求程序必須在運行時才能進行强法,如果需要在程序還沒啟動的時候就可以接收到注冊的廣播稳诚,就需要靜態(tài)注冊了凝化。主要是在AndroidManifest中進行注冊
發(fā)送方式分類(只能是自定義廣播)
  • 標準廣播
    沒有先后順序可言,不能修改內(nèi)容罪既,無法被截斷
  • 有序廣播
    根據(jù)優(yōu)先級依次向后傳播酪耳,優(yōu)先級相同時動態(tài)注冊高于
    靜態(tài)注冊,abortBroadcast()可截斷廣播

廣播的安全性

Android中的廣播可以跨進程甚至跨App直接通信煮嫌,可能會收到其他app發(fā)送的相同的自定義廣播笛谦,也可能被其他app收到并獲取其中信息。一些增加安全性的方案包括:
1. 靜態(tài)注冊自定義廣播時 android:exported="false" 屬性設(shè)置false昌阿,不接收其他App內(nèi)部發(fā)出的此廣播

2. 發(fā)送自定義廣播時饥脑,intent.setPackage(packageName)指定包名,這樣此廣播將只會發(fā)送到此包中的App內(nèi)與之相匹配的有效廣播接收器中

3. 采用LocalBroadcastManager的方式直接發(fā)送本地廣播

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("xxx");
localBroadcastManager = LocalBroadcastManager.getInstance(this); //獲取實例
localBroadcastManager.registerReceiver(myBroadcastReceiver, intentFilter); //注冊本地廣播監(jiān)聽

localBroadcastManager.sendBroadcast(new Intent("xxx")); // 發(fā)送本地廣播

localBroadcastManager.unregisterReceiver(myBroadcastReceiver);//退出時解除注冊

注意:AndroidX廢除了localBroadcastManager 直接使用Context的registerReceiver()懦冰、sendBroadcast()灶轰、unregisterReceiver() 進行注冊、發(fā)送刷钢、解除

4. 在廣播發(fā)送和接收時笋颤,都增加上permission,用于權(quán)限驗證

4.1. 自己定義權(quán)限闯捎,并且使用自定義權(quán)限

<permission
    android:name="my.permission.name"
    android:label="BroadcastReceiverPermission"
    android:protectionLevel="signature">
</permission>
<uses-permission android:name="my.permission.name" />

android:protectionLevel屬性如下:

  • normal:默認的椰弊,應(yīng)用安裝前许溅,用戶可以看到相應(yīng)的權(quán)限瓤鼻,但無需用戶主動授權(quán)。
  • dangerous:normal安全級別控制以外的任何危險操作贤重。需要dangerous級別權(quán)限時茬祷,Android會明確要求用戶進行授權(quán)。常見的如:網(wǎng)絡(luò)使用權(quán)限并蝗,相機使用權(quán)限及聯(lián)系人信息使用權(quán)限等祭犯。
  • signature:它要求權(quán)限聲明應(yīng)用和權(quán)限使用應(yīng)用使用相同的keystore進行簽名。如果使用同一keystore滚停,則該權(quán)限由系統(tǒng)授予沃粗,否則系統(tǒng)會拒絕。并且權(quán)限授予時键畴,不會通知用戶最盅。它常用于應(yīng)用內(nèi)部。把protectionLevel聲明為signature起惕。如果別的應(yīng)用使用的不是同一個簽名文件涡贱,就沒辦法使用該權(quán)限,從而保護了自己的接收者惹想。

4.2. 如果采用靜態(tài)注冊的方式:

<receiver
     android:name=".common.MyBroadcastReceiver"
     android:exported="false"
     android:permission="my.permission.name">
     <intent-filter>
         <action android:name="action.name"/>
     </intent-filter>
</receiver>

4.3. 如果采用動態(tài)注冊的方式:

//注冊receiver時问词,指定發(fā)送者的權(quán)限,不然外部應(yīng)用可以收到receiver
registerReceiver(receiver, intentFilter, "my.permission.name", null);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嘀粱,一起剝皮案震驚了整個濱河市激挪,隨后出現(xiàn)的幾起案子辰狡,更是在濱河造成了極大的恐慌,老刑警劉巖灌灾,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搓译,死亡現(xiàn)場離奇詭異,居然都是意外死亡锋喜,警方通過查閱死者的電腦和手機些己,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘿般,“玉大人段标,你說我怎么就攤上這事÷” “怎么了逼庞?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞻赶。 經(jīng)常有香客問我赛糟,道長,這世上最難降的妖魔是什么砸逊? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任璧南,我火速辦了婚禮,結(jié)果婚禮上师逸,老公的妹妹穿的比我還像新娘司倚。我一直安慰自己,他們只是感情好篓像,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布动知。 她就那樣靜靜地躺著,像睡著了一般员辩。 火紅的嫁衣襯著肌膚如雪盒粮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天奠滑,我揣著相機與錄音丹皱,去河邊找鬼。 笑死养叛,一個胖子當著我的面吹牛种呐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弃甥,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼爽室,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阔墩,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤嘿架,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后啸箫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耸彪,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年忘苛,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝉娜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡扎唾,死狀恐怖召川,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胸遇,我是刑警寧澤荧呐,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站纸镊,受9級特大地震影響倍阐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逗威,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一峰搪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庵楷,春花似錦罢艾、人聲如沸楣颠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽童漩。三九已至弄贿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矫膨,已是汗流浹背差凹。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侧馅,地道東北人危尿。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像馁痴,于是被迫代替她去往敵國和親谊娇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 1.廣播的分類 (1)按照發(fā)送的方式分類 標準廣播是一種異步的方式來進行傳播的罗晕,廣播發(fā)出去之后济欢,所有的廣播接收者幾...
    曹豐斌閱讀 34,135評論 0 22
  • 廣播接收器 是Android的四大組件之一赠堵,可見廣播在Android中的重要性; 1. 什么是廣播法褥? 廣播(Bro...
    Lost_Robot閱讀 1,939評論 2 10
  • 1.Android廣播機制概述 Android廣播分為兩個方面:廣播發(fā)送者和廣播接收者茫叭,通常情況下,Broadca...
    IT小魔女的故事閱讀 552評論 0 2
  • 諸多無奈半等,最近在改一個項目的bug的時候揍愁,腦子老是一片空白,可能是最近腦子不夠用杀饵,總之吗垮,好多東西忘了,閱讀一些別人...
    狗子王1948閱讀 7,709評論 6 53
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情況下的生命周期:在用戶參與的情況下...
    AndroidMaster閱讀 3,031評論 0 8