问题标签 [android-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 尽管在 android 清单中声明了所需的权限,但无法从设备获取电话号码
我正在尝试以编程方式从我的设备中获取电话号码。我正在尝试使用以下代码:
我在清单文件中声明了以下权限:
但我的应用程序仍然崩溃,堆栈跟踪如下:
任何人都可以请让我知道我在做什么错误以及为什么我会崩溃。欢迎所有建议。
android - 具有隐含意图的自定义权限
鉴于 Android 中的安全模型,我正在尝试将自定义权限与广播接收器一起使用。
我做了什么:
我已经为接收者声明了一个自定义权限,从而限制了它可以接收的广播。清单中的一些代码:
现在我希望接收器UpdateUserReceiver只会接收来自使用权限“abc”的组件的广播。
广播发送代码:
发送广播的活动:
Question 1 : 如所见,activity nowhere 使用receiver 声明的权限,以便它可以接收来自activity 的广播。但是仍然调用了接收器,我怀疑这是由于使用了隐式意图,尽管我不确定。有任何想法吗?
问题 2:在应用程序级别声明的权限标签和接收器内部的 android:permission 标签有什么区别?我理解第二个的使用,它在任何人都可以期望接收者接收广播之前强制执行许可,但是为什么需要第一个。这种情况是否需要它,或者可以将其删除。无论哪种方式,我都检查了接收器是否接收到广播。
java - 请求 android.permission.BRICK 权限是否足以保护导出的 BroadcastReceiver 免受流氓应用程序的侵害?
考虑BroadcastReceiver
监听 Wifi 事件并注册AndroidManifest.xml
如下的情况:
流氓应用程序可能会伪造和广播此类事件,从而影响应用程序的行为。
要求android.permission.BRICK
导出的权限是否可以BroadcastReceiver
缓解与普通用户可能安装的流氓应用程序相关的所有安全问题?
android - Android 上的 Windows 和 .NET 的 ProtectedData 等效项?
我想在 Android 设备上加密保存一些敏感数据(例如,Windows 网络 ID/密码)。我不是试图保护用户的数据;我正在尝试代表用户保护数据。只要用户没有登录,我希望数据保持加密状态,这样如果坏人可以访问物理存储并尝试绕过操作系统的身份验证读取数据。
在 Windows 和 .NET 上,可以使用“ System.Security.Cryptography.ProtectedData ”。数据由 Windows 帐户加密,因此不需要加密密钥。如果加密的数据存储在磁盘上,即使您通过将磁盘连接到另一台计算机或引导到另一个操作系统来绕过操作系统,您也无法解密加密的数据。
我搜索了 Google 和 Stack Overflow,大多数答案都指向客户经理。但我认为 Account Manager 不适合我的情况,因为我不希望这些数据出现在“设置”>“帐户”中,或被任何其他应用程序使用。我可以使用我自己的代码和加密密钥加密数据,然后可以在运行我的应用程序的另一个系统上解密数据(我可以防止这种情况,但它需要额外的想法和工作,并且容易受到逆向工程的影响)。
在这种情况下,最好的选择是什么?如果在 Android 上没有像 ProtectedData 这样方便的东西,是否有任何唯一的密钥可以用于加密?它必须对设备上的该帐户是唯一的,并且不可猜测。
android - Android:AIDL 的安全 IPC 替代方案?
我正在尝试做的事情:在设备上安装的两个应用程序之间实现轻量级、安全的 IPC 协议。客户端应用程序应该能够发送命令和查询以Service
在服务应用程序中运行,并接收返回的计算结果。
应用关系:两个应用的源代码都在我的控制之下,但应用会有不同的签名(不可协商)。
安全要求:服务应用应向单个客户端提供其服务。客户端的应用程序 ID(包名称)是已知的且不变的。
我尝试了什么:我尝试使用双向Messenger
通信方案实现 IPC(类似于此博客文章)。这种方法效果很好,但是我遇到了一个主要问题-我找不到获取UID
客户端的方法,因此无法满足安全要求。
Service
考虑在服务应用程序中找到的这段代码:
这里的想法是,当客户端应用程序向 this 发送消息时Service
,它会将其本地“回调”Messenger
放入replyTo
sent 的成员中Message
。文件Messenger
说明:
注意:下面的实现只是用于执行通信的 Binder 的简单包装器。
所以我认为我可以以某种方式将返回的BinderMessenger#getBinder()
映射到 client's UID
,但我现在遇到了麻烦:
Messenger#getBinder()
返回无法转换为的IBinderBinder
- 即使我确实设法获得了对 client's 的引用
Binder
,该方法Binder#getCallingUid()
也是static
并且不接受参数......
因此,为了使这个特定的实现安全地工作,我需要找到一种方法来根据客户端创建UID
的内容Message
或特定的内容来获取调用者。由于Android的Messenger
安全架构是围绕.Binders
Binders
UIDs
额外问题:除了 AIDL,Android 上是否还有其他 IPC 技术可以满足上述要求?
android - 阻止其他应用程序向我的 broadcastReceiver 发送广播
我broadcastReceiver
在清单中注册了一个接收从我的一项服务发送的带有自定义操作的广播。我已经让它工作了,但出于安全原因,我想防止其他应用程序向我的接收器发送虚假广播。我怎样才能做到这一点?
显现
android - 向活动添加权限以在 android 应用程序中提供安全性(避免 android 中的活动绕过)
我知道如何为应用程序添加权限,例如互联网权限和读写外部目录权限
但我在问如何为每个活动添加权限以避免绕过活动。
我们如何在 android 应用程序中提供安全性。
android - 我们是否还应该检查 Android 篡改检测的签名数量
我有这段代码(从这里复制:https ://www.airpair.com/android/posts/adding-tampering-detection-to-your-android-app )为我的 Android 应用程序添加篡改保护。
是否可以向 Play 商店提交具有多个签名的应用程序?
我是否还应该验证该方法packageInfo.signatures
只返回一个签名?或者一个apk
可以有多个签名并且所有签名都有效?