在本地而不是服务器端做某些事情是安全的吗?
比方说,我有一个iPhone应用程序通过PHP
API与服务器上的数据库进行通信,并且我在$_SESSION
保存类似用户标识的问题(您知道,这可能会有些痛苦) ,所以我可以将其存储在NSUserDefaults
或iPhone钥匙串中,并在需要时将其发送到服务器,在应用端而不是服务器端做这样的事情是错误的/不安全的?
根据这个线程关于NSUserDefaults
:在一个普通的设备上,你不能真正得到它,但如果它是越狱plist文件很容易阅读和更改,它不是encryption,因此它可能不安全的用户名,密码或任何个人信息,除非你保存它,你做某种forms的encryption散列,然后保存。
另一方面,您可以尝试使用iOS Keychain或iCloud Keychain 。 它在这里说:
这是非常安全的,因为任何试图读取您的iCloud Keychain的新设备都需要下列其中一项:
-
您现有的一台设备通过手动验收的推送通知validation连接。
当您在其他设备上启用iCloud Keychain时,使用iCloud Keychain的其他设备会收到请求批准其他设备的通知。 批准附加设备后,您的iCloud Keychain将自动开始在该设备上进行更新。
-
您的iCloud安全代码
当您设置iCloud Keychain时,系统会要求您创build一个iCloud安全代码。 它可以是一个类似于您的设备的密码locking的4位数字代码,也可以为您自动生成更复杂的代码。 iCloud安全码用于授权其他设备使用您的iCloud Keychain。 它还用于validation您的身份,以便您可以执行其他iCloud Keychain操作,例如,如果丢失了所有设备,则恢复您的iCloud Keychain。
错误地input代码多次导致手动validation方法
-
短信validation到您的手机。
使用您在首次设置iCloud Keychain时提供的支持SMS的电话号码的设备。 validation码通过短信发送到这个电话号码。 如果您无法访问此号码,请联系Apple支持人员 ,他们可以validation您的身份,以便您可以在新设备上完成设置。
此外,还可以通过启用双因素身份validation来保护您的iCloud帐户/ Apple ID,以便在许多情况下 – 在您的新设备上首次使用您的iCloud密码时,会触发除Apple自动发送的电子邮件密码在新设备上使用。
综上所述:
- 当您的密码在iCloud的新设备上使用时,您会收到电子邮件通知 – 无需selectjoin步骤。
- 钥匙串同步具有增强的保护/双因素身份validation,再次不需要selectjoin。
- 您可以selectjoinAppleID双因素身份validation,以进一步防止密码丢失/略过。
- swiftinheritance的协议方法覆盖
- cordova / phonegap 2.0 iOS
- 强制语言更改通知iOS
- 我使用Swift创建了Affirm裸露骨骼骨架应用程序
- 编程创build一个uicollectionview时使用自定义的init方法
- closures使用closePath函数的贝塞尔path和手动closures之间有什么区别?
- 为什么我的应用程序安装不能在Parse.com for iOS中显示?
- 这个Xcode警告是什么意思? “应用程序可执行文件缺less必需的架构 ……”
- 如果Firebase控制台页面中提到了一个应用ID,是否可以创buildGoogleService-Info.plist?