将我的应用程序从 Obj-C 转换为 Swift 时,我应该牢记安全问题吗?

Are there security concerns I should keep in mind when converting my app from Obj-C to Swift?

我在一家大公司拥有的大型旧程序上工作。很快,我们希望开始从 Objective-C 移动到 Swift。我们要移动的原因之一是 Swift 比 Objective-C 更安全。但是,我们希望尽可能避免任何安全漏洞。除了业务逻辑,是否有任何我可能用 Obj-C 编写的安全代码示例,这些代码在 Swift 中本质上是不安全的,反之亦然?

我最担心的是用户提供的数据,以及假装与我们的服务器进行合法通信的中间人攻击。

虽然我认为转向 Swift 是明智的,但我认为认为 Swift 比 Objective-C 安全得多的说法是言过其实了。即使在 Objective-C 中,如果您避免像 C 一样对缓冲区进行操作并坚持使用 Cocoa 类,您通常不会出现缓冲区溢出等问题。

但如果这是您的顾虑,我的主要 Swift 警告是仔细检查任何对适当命名的 "unsafe buffer pointers" 的使用(例如 unsafeAddressOfunsafeBufferPointerUnsafeMutablePointer,等等)。此外,检查您必须调用的任何 C API 仍然需要缓冲区指针。

我之前的观点仅仅是,这只是整体安全风险的一小部分,我不确定这在我的 Swift 过渡理由列表中是否很高。 Swift 本身几乎没有解决更令人震惊的问题,例如沙箱失败和使用钥匙串、草率的网络 and/or 缓存管理等,正如 WWDC 2015 Security and Your Apps 和 WWDC 安全性中所讨论的前几年的演讲。这些类型的安全问题通过严格的开发过程得到解决,包括明智的设计、编码、测试和审查,但可以在 Objective-C 和 Swift 中同样有效地解决。