【问题标题】:Is category method overriding a potential security issue?类别方法是否覆盖了潜在的安全问题?
【发布时间】:2019-02-22 12:42:11
【问题描述】:

我不小心创建了一个与 UIKit 方法同名的类别方法。这导致 UIKit 调用我的方法而不是库方法,从而导致一些奇怪的 UI 故障。阅读此内容并为我的方法添加前缀后,该错误消失了: https://developer.apple.com/library/archive/qa/qa1908/_index.html

我在想,这不是潜在的安全问题吗?我基本上可以决定覆盖系统方法运行时吗?我确实覆盖了一个无害的 UI 方法,但我可以对安全/用户身份验证类做同样的事情......

【问题讨论】:

    标签: ios objective-c security categories


    【解决方案1】:

    如果您可以写入进程的内存,则绝对有可能使用此技术来修改进程。类似的方法是F-Script Anywhere 的工作方式(或确实有效;我最近无法让它工作)。

    但是,类别扩展存在于进程级别,而不是系统级别,因此这不会影响其他进程,也不会允许您直接提升您的权限(您可以这样做,否则您可以这样做)。

    您可能会想象,当 Finder 使用相同的对象时,它会执行您应用中的某个类别,但这是不可能的。

    【讨论】:

    • 还值得一提的是,如果在类别中使用相同的名称,则行为是未定义的 - 将调用原始实现或您的实现。如果真的想更改UIKits 方法之一,可以使用 swizzling。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    相关资源
    最近更新 更多