我正在构建一个应用程序,需要在服务器执行任何操作之前从用户设备发送密码以在服务器上进行身份验证。事情是这样的:
- 用户的手机上有一个纯文本密码,该密码也在服务器中以 bcrypt 二进制文件的形式存在。
-
用户想要从数据库中获取某些内容,因此用户通过(当前是纯文本。这很糟糕)将他们的 ID 和密码发送到服务器。
NSString *url = [NSString stringWithFormat:@"%@f=getUserInfo&ID=%@&password=%@",[[Globals global] operationServerName], self.ID, self.password];
NSData *data =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
服务器对从用户那里获得的密码进行哈希处理,然后从服务器检索已经经过哈希处理的密码并进行比较,如果匹配,则从数据库中获取一些内容
问题是 ID 和密码通过纯文本发送到服务器,我不知道该怎么做或实施什么来确保其安全,从而避免窃听攻击。我完全不知道该怎么做,但我听说 ssl/tls 会有所帮助,如果有人可以在初级水平上向我解释如何解决问题或为我指出正确的方向,我真的很感激!任何关于如何改进这一点的提示或解释都会很棒!我完全一无所知。
同样在服务器端方面,最好知道我应该在其中添加什么以使其在应用程序中成为可能。我目前使用的是本地服务器,但当它上线时,它将来自托管公司
您需要通过发送数据HTTPS连接而不是 HTTP。这样客户端和服务器之间的数据流将被加密。
您需要在您的服务器上安装 SSL 证书。(如果您不知道安装,只需询问您的主机提供商即可)。现在不要在全局方法中返回 http 链接[[Globals global] operationServerName]
返回 HTTPS (https://example.com https://example.com)
这应该负责加密服务器和客户端之间的数据流。
参考:http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)