【问题标题】:does using nslog compromise testers security使用 nslog 是否会损害测试人员的安全性
【发布时间】:2013-02-23 01:02:15
【问题描述】:

我用谷歌搜索并找不到任何可能意味着答案是否定的东西,但如果我不小心让 nslog 记录传入的互联网消息(聊天),我可以向我的测试人员保证这是私人信息,或者有什么方法我会能够找回它。当我用谷歌搜索时,您似乎需要插入设备并运行它才能查看该数据。我认为没有人拥有该机密信息,它只是一个游戏服务器,但我希望能够让人们知道他们是否对他们使用该应用程序的私密性有疑问,即使我不打算出去看看自己的任何人的聊天记录。

迈克

【问题讨论】:

    标签: iphone objective-c ipad ios5


    【解决方案1】:

    最好将您记录的任何内容视为自动公开。永远不要记录潜在的私人信息,尤其是在生产环境中。它是否可以被检索(它可以)甚至都无关紧要。

    【讨论】:

      【解决方案2】:

      NSLog 会写入他们设备上的系统日志。来自NSLogv 上的文档:

      将错误消息记录到 Apple 系统日志工具(参见 man 3 asl)。如果 STDERR_FILENO 文件描述符已被重定向 从默认或者是去一个tty,也会写在那里。

      因此,数据以明文形式存储在他们的设备上。如果有敏感数据,这不是最佳做法。作为开发人员,检索它对您来说并非易事,但它的存在仍然不是一件好事。我建议在您的发布版本中禁用 NSLog(您确定不是吗?您在自己的设备上运行版本时是否查看过 Xcode 中的控制台?)

      【讨论】:

      • 这仅适用于测试人员的构建,我只有几个测试人员。我正在记录的是在聊天控制台中进行聊天以调试解析器。我确实把它关掉了,但有时如果我在使用它,我就把它打开了。真的没有什么敏感的没有财务或敏感信息,但我想尊重我的测试人员的隐私,不要让他们认为如果他们有任何时间我可以阅读他们的私人聊天(而不是公共聊天)
      • 还会在下次运行程序时删除,如果我把它留在上面,他们会将所有聊天日志存储在他们的设备上,这当然不理想。我不认为这是巨大的安全问题,除非他们在聊天中提供敏感信息,但如果我需要打开它进行调试,我应该更好地关闭它。部分原因是当我在一周内进行许多构建时,可能会时不时地使用它。
      • 我只是记录传入的聊天而不是传出的内容,因为我记录时所说的内容对我来说并不重要。除非它传入,否则我不必解析它。
      • 您是直接在您的机器上构建他们的版本,还是分发 ipa?通常我会制作一个带有发布设置的 ipa 并执行以下操作:stackoverflow.com/questions/2025471/… 尝试在您自己的设备上使用您正在共享的版本进行测试(查看管理器中的控制台,或使用设备上的控制台应用程序)。我不确定控制台日志缓冲区有多大,但它似乎不会在运行之间重置。
      • 有很多方法可以确保它处于关闭状态,例如在发布版本中打开 -Werror 并在记录日志的代码旁边使用 #warning "Dev logging" 之类的东西。
      【解决方案3】:

      通过插入设备,事后可以看到日志。我相信即使设备被密码锁定,这也可以工作。

      有限的长度表明日志可能仅在内存中,但不能保证 - Apple 可能会将它们保存到闪存中以用于崩溃报告。

      也不能保证它们不能被其他进程读取。

      【讨论】:

      • 它们肯定可以被其他进程读取,因为 AppStore 上有控制台应用程序可以做到这一点。
      • 很高兴知道。对于我的应用程序日志,我认为即使日志完全暴露,它的风险也很低,但如果有人在他们的设备上看到他们的传入聊天记录,我肯定会看到有人对我生气。
      猜你喜欢
      • 1970-01-01
      • 2016-08-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多