清理Intent文件URI

时间:2018-02-26 15:15:19

标签: android android-intent sanitization

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

1 个答案:

答案 0 :(得分:0)

为了关闭,我会发布我带的解决方案。我阻止包括/proc/和我的应用程序包名称在内的任何内容,如下所示:

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

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