Mysql NSURLSession密码安全性

Mysql NSURLSession密码安全性,mysql,xcode,https,bcrypt,password-encryption,Mysql,Xcode,Https,Bcrypt,Password Encryption,人们需要登录才能开始使用我的应用程序。他们可以在我的网站上注册,他们的密码使用Bcrypt存储。当他们登录应用程序时,我在GET请求()中将密码作为纯文本传输到一个php文件,该文件再次使用Bcrypt将密码与存储在数据库中的密码进行比较。我的网站始终使用SSL证书和HTTPS连接。因此,我的NSURL以HTTPS请求开始。我的问题是,这种方式足够安全还是完全不安全?如果是这样,您建议如何验证用户的登录?如果服务器使用TLS 1.2和完美的前向保密,HTTPS是安全的。此外,如果服务器使用双因素

人们需要登录才能开始使用我的应用程序。他们可以在我的网站上注册,他们的密码使用Bcrypt存储。当他们登录应用程序时,我在GET请求()中将密码作为纯文本传输到一个php文件,该文件再次使用Bcrypt将密码与存储在数据库中的密码进行比较。我的网站始终使用SSL证书和HTTPS连接。因此,我的NSURL以HTTPS请求开始。我的问题是,这种方式足够安全还是完全不安全?如果是这样,您建议如何验证用户的登录?

如果服务器使用TLS 1.2和完美的前向保密,HTTPS是安全的。此外,如果服务器使用双因素身份验证,并且第二个因素得到了很好的控制


但是你还需要在你的应用程序中锁定证书以防止MITM攻击。

我认为使用HTTPS是一个很好的开始。正如zaph指出的,您可能需要检查以确保您的服务器正在使用TLS1.2

不过,我同意SLaks,并建议不要提出
GET
请求。警告“服务的作者应该避免使用基于
GET
的表单提交敏感数据,因为这些数据将放置在请求目标中。许多现有服务器、代理和用户代理在第三方可能看到的位置记录或显示请求目标。此类服务应使用基于
POST
的表单提交。”

在您考虑
NSURLSession
安全性时,我建议您确保在用户身份验证期间不进行任何缓存,甚至可能使用,以便您经过如此长时间加密的数据不会无意中存储在其他未加密的位置


我可能还建议观看WWDC 2015视频、、和。这些视频不会直接解决您的问题,但它们确实涉及到一些更广泛的安全/隐私问题。

使用POST,而不是GET。@SLaks这就足够安全了吗?@zaph是的,谢谢您纠正我。很高兴知道为什么不使用GET处理敏感信息。谢谢英雄!这给了我很大的信心,我很感激你花时间回答我的问题