【问题标题】:Sanitizing Intent file URIs清理 Intent 文件 URI
【发布时间】:2018-02-26 15:15:19
【问题描述】:

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

【问题讨论】:

    标签: android android-intent sanitization


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      相关资源
      最近更新 更多