人们需要登录才能开始使用我的应用程序。他们可以在我的网站注册自己,他们的密码是用Bcrypt存储的。当他们登录应用程序时,我将GET请求(https://website.com/file.php?pass=password)中的密码作为纯文本传输到一个php文件中,该文件再次使用Bcrypt将密码与存储在我数据库中的密码进行比较。我的网站在任何时候都使用SSL证书和HTTPS连接。因此,我的NSURL以HTTPS请求开始。我的问题是,这样做是否足够安全,还是完全不安全?如果是的话,您建议如何验证用户的登录?
发布于 2016-03-11 02:27:31
我认为使用HTTPS是一个很好的开始。正如zaph所指出的,您可能需要检查以确保您的服务器正在使用TLS1.2。
不过,我同意SLaks的意见,并建议不要GET请求。RFC 7231第9.4节警告说,“在提交敏感数据时,服务的作者应该避免使用GET-based表单,因为这些数据将被放置在请求中--目标。许多现有的服务器、代理和用户代理记录或显示请求,目标在第三方可能看得见的地方。此类服务应该使用POST-based表单提交。”
在您考虑NSURLSession安全性时,我建议您确保在用户身份验证期间不进行任何缓存,甚至可能使用短暂会话,这样就不会无意中将这些数据存储在其他非加密的地方。
我也可能建议观看2015年安全和你的应用程序、隐私与你的应用和用NSURLSession建立网络的视频。这些并不能直接解决你的问题,但它们确实涉及到一些更广泛的安全/隐私问题。
发布于 2016-03-11 00:05:31
如果服务器使用TLS 1.2和完全的前向保密,则HTTPS是安全的。另外,如果服务器使用的是2因素身份验证,而第二个因素被很好地控制。
但是,您还需要将证书钉在应用程序中,以防止MITM攻击。
https://stackoverflow.com/questions/35929422
复制相似问题