我有一个 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/