1

我的网站正在创建一个扩展其功能的应用程序 - 这意味着该应用程序不需要遵循严格的 OAuth 流程,因为我们显然相信自己。

我们希望应用程序的用户能够从应用程序中输入他们的用户名和密码……这意味着我们需要一种方法将该信息传输到网络服务器以验证它们。

假设我们使用 SSL,这是一个安全的想法吗?

我们是否需要采取额外的步骤,我们是否需要以某种方式确保请求来自我们的应用程序,而不是欺骗性的应用程序,或者其他什么?

4

2 回答 2

2

首先,相信自己是不够的。一旦你的用户掌握了你的应用程序,你将无法控制你的应用程序、使用它的设备或它连接到的网络。

如果您的应用程序中有一个公共共享密钥,只有您的服务器才能解密(正如评论中提到的那样),这种方案仍然可能会导致问题,因为掌握您的应用程序的用户可能会对其进行逆向工程并获得该密钥锁定其他用户的关键。

如果您没有使用单点登录 (SSO) 对您的网站进行身份验证,而是在表单中使用普通用户名和密码,那么通过 SSL/TLS 连接从您的应用程序传输与从浏览器传输没有什么不同(通过 HTTPS),前提是整体配置正确。无论如何,当您从浏览器发布表单时,就会发生这种情况。通过按照您的建议使用 SSL/TLS,您实际上并没有明文发送密码(只要配置正确)。

检查它是来自您的应用程序还是来自欺骗性应用程序是另一回事,通常很难防范。如果您的服务设计良好,那么当您已经拥有用户身份验证时,通常不值得。经过身份验证的用户应该只能执行您的服务器允许他们执行的操作,无论这些操作的请求来自您的应用程序还是这些用户控制的其他应用程序(只要服务器验证他们已正确验证)。(在这种情况下,如果用户被欺骗使用欺骗性应用程序,而不是服务本身,那么欺骗性应用程序往往会成为更大的问题。)

于 2012-04-28T17:44:45.627 回答
1

有几种可能的安全威胁,您可以决定是否要担心其中的任何一种:http: //xkcd.com/538/

但安全的原罪是“明文密码”。至少对它进行哈希处理,以便它不会以明文形式存储在服务器上。

于 2012-04-25T22:48:16.553 回答