【问题标题】:How can I protect integer data on NSUserDefaults from hacking?如何保护 NSUserDefaults 上的整数数据免遭黑客攻击?
【发布时间】:2014-04-04 12:47:21
【问题描述】:

我在 App Store 上的应用程序中有付费内容。我使用以下代码保存它:

paidContentCount = [[NSUserDefaults standardUserDefaults] integerForKey:@"paidContentCount"];

但是破解它很容易。如何保护整数数据免受黑客攻击?

【问题讨论】:

    标签: ios iphone security nsuserdefaults


    【解决方案1】:

    切勿在NSUserDefaults 中存储此类设置!使用 iOS 钥匙串。这是wrapper,它是最重要的工作部分。

    除此之外,您还可以阅读 Ray Wenderlich 的 this article - 有很多关于基本安全的好主意。

    【讨论】:

    • 它更复杂,而且没有一种方法是完全安全的——如果有人想破解你的应用程序——他肯定会这样做。
    • 它只是一个简单的整数值。实在不想用第三方组件来保存……
    • etolstoy,你是对的,它不会完全安全。但我想找到一个简单的方法。
    • @Altaveron 如果您想让它尽可能简单,请将整数值替换为字符串,您可以在应用程序中对其进行硬编码。对于攻击者来说,它不像 NSUserDefaults 中的整数值那么明显。此外,不要忘记将 Key 名称更改为棘手的名称。
    • 我应该检查“自上次提交此应用程序以来,您是否添加或更改了加密功能?”如果我使用 iOS 钥匙串,在 iTunes Connect 上选择“是”?
    【解决方案2】:

    您可以尝试使用[NSString hash] 方法将您的内容保存为字符串,并在您的应用加载后,将付费内容的哈希值与来自NSUserDefaults 的值进行比较

    更新:忘记了 [NSString hash] 返回 NSInteger

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 2016-02-06
      • 2011-03-16
      • 2018-04-02
      • 2019-05-22
      • 2011-01-31
      • 1970-01-01
      相关资源
      最近更新 更多