1

最近私のAndroidソースコードでHPFortifyサービスを使用してコードスキャンを行いました。彼らは、ブロードキャストレシーバの1つに関するセキュリティの脆弱性を報告しました。彼らは、攻撃者の攻撃を減らすために放送局の許可を使用することを提案しました。この方法では、放送局を制限しています。そうしないと、悪質なアプリケーションが意図を送信し、放送受信者がそれを処理します。私は許可を聞くために、次のアクセス許可を使用していますandroid.provider.Telephony.SMS_RECEIVEDのbrodcasterの許可

String ACTION = "android.provider.Telephony.SMS_RECEIVED" 
IntentFilter smsFilter = new IntentFilter(SMSReceiver.ACTION); 
        smsFilter.setPriority(Integer.MAX_VALUE); 
        smsReceiver = createSMSReceiver(ctx, l); 
        ctx.registerReceiver(smsReceiver, smsFilter); 

:ここ

は私の実際のコードです。

<uses-permission android:name="android.permission.RECEIVE_SMS"/> 

理想的には、コードの最後の行は次のようにする必要があります:私は放送受信許可を把握することはできませんよ

ctx.registerReceiver(smsReceiver, smsFilter, "XXX.boradcaster.permission.XXX", null); 

。誰かがこれを理解する方法を提案することはできますか?

答えて

1

あなたが探している権限は"android.permission.BROADCAST_SMS"です。android.Manifest.permission.BROADCAST_SMS定数を使用することもできます。

+0

あなたはこの許可をどのように把握しましたか?もっと情報を教えてもらえますか? – Rakesh

+0

検索するだけです。私はどこに戻ったのかわかりませんが、SMS APIが公開されたときに[ブログのページ](http://android-developers.blogspot.com/2013/10/getting-your-sms -apps-ready-for-kitkat.html?m = 1)、詳細はサンプルコードに含まれています。そのようなものがドキュメントや開発者のページですぐに利用できない場合は、ソースコードを検索することが確実です。この場合、そのアクションをブロードキャストしているパッケージを検索し、そのマニフェストで関連するアクセス許可を確認します。 –

+0

ブロードキャストがシステムから送信されたものではなく、サードパーティのアプリなどで送信された場合は、その許可をドキュメントに記載する必要があります。そうでない場合は、 'PackageManager'を使ってアプリケーションのマニフェストを検査したり、APKを逆コンパイルしたりすることができます。そして、もちろん、あなたのアプリケーションがそれを放送しているなら、あなたはすでにその許可を知っています。そのすべてに失敗した場合、Stack Overflowに関する質問をすることができます。 :-) –

関連する問題