android - 清理 Intent 文件 URI

标签 android android-intent sanitization

我有一个 Android 聊天应用程序,它接受各种可能的共享 Intent 。我正在尝试强化我的应用程序中文件 URI 的解析逻辑。例如,包含我的应用程序包名称的 URI 会被过滤,否则外部应用程序可能会尝试诱骗用户与其他人共享整个消息数据库。我还想阻止读取 /proc/self 和类似内容的尝试。我正在寻找一个应该被阻止的目录列表,或者更好的是,一个为我执行此清理的库。另一种选择是使用外部缓存和目录的白名单,我可以从 Android 系统中获取这些白名单。谁能给我建议哪个选项最好?或者任何人都可以给我一份与 proc 相似的目录列表,这些目录至少应该被列入黑名单吗?

最佳答案

为了结束,我将发布我使用的解决方案。我阻止了任何内容,包括 /proc/ 和我的应用程序的包名称,如下所示:

val path = uri.getPath
if (path.contains(context.getPackageName) || path.startsWith("/proc")) {
  None
} else {
  Some(u)
}

请注意,一般情况下进行清理时,您希望在任何其他转换之后尽可能晚地执行它,以降低您的步骤被绕过的风险。

关于android - 清理 Intent 文件 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991604/

相关文章:

android - 找不到语音转文本识别器

android - 无法解析myAPI。是外部图书馆吗?

具有 Intent 的 Android onActivityResult()

java - 当您的应用程序通过通知打开时,是否可以从打开的位置返回到上一个应用程序?安卓

android - 第二次单击时 MenuItem.OnMenuItemClickListener 不工作

android - 如何获取和取消 PendingIntent?

php - 使用 filter_var 清理字符串

php - 将 "clean"信息存储在 SQL 数据库中的最佳方法是什么?

Javascript - 清理文件中的恶意代码(字符串)

java - 在回收者 View 中从 firebase 检索某些 key