我正在构建一个应用程序,该应用程序需要在服务器执行任何操作之前从用户设备发送密码以在服务器上进行身份验证。它是这样的:
- 用户在他们的手机上有一个纯文本密码,该密码也在服务器中作为 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 会有所帮助,如果有人可以在初级水平上向我解释如何解决问题或为我指出正确的方向,我真的很感激!任何关于如何改进这一点的提示或解释都很棒!我完全不知道。
同样是服务器端,很高兴知道我应该在那里添加什么以使其在应用程序中成为可能。我目前使用的是本地服务器,但当它上线时,它将来自托管公司
Best Answer-推荐答案 strong>
您需要通过 HTTPS 连接而不是 HTTP 来发送数据。这样,客户端和服务器之间的数据流将被加密。
您需要在您的服务器上安装 SSL 证书。(如果您不知道安装,请咨询您的主机提供商)。现在不是在全局方法中返回 http 链接 [[Globals global] operationServerName] 而是返回 HTTPS (https://example.com)
这应该负责加密服务器和客户端之间的数据流。
引用:http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html
关于php - iOS 安全性向服务器发送数据和从服务器发送数据,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/24231905/
|