应用和服务器之间的安全?

时间:2013-01-29 11:46:00

标签: ios node.js ssl authorization basic-authentication

我知道这有很多线索。但我仍然感到困惑。

我有一个应用程序向我的服务器(nodeJS)发出请求以获取JSON数据。 目前,每个人都可以获得所有内容:http://myserver/allUpdates/,无需密码。他们只需要知道URL。

所以我想我会更安全一点。 我一直在寻找基本身份验证,这似乎可以通过在每个请求的标头中发送用户名和密码来实现。

那够了吗?

有些人说,如果你不使用SSL,它不会做太多。但它一定比没有好,对吗?

我从未使用过SSL,似乎还有很多需要学习的地方。

所以我的问题是,当我不使用SSL时,我是否应该使用auth? 还是有其他选择吗?

2 个答案:

答案 0 :(得分:1)

SSL会对您的请求进行加密,这意味着任何嗅探您网络流量的人都无法读取请求的有效负载。

您有两种方法可以将客户端授权给服务器:

  • 为每个请求发送凭据或API密钥或
  • 使用凭据或API密钥在客户端登录一次并重复使用其会话

在这两种方式中,您都应该使用SSL并使用POST数据发送凭据。

答案 1 :(得分:1)

  

有些人说,如果你不使用SSL,它不会做太多。但它一定比没有好,对吗?

不幸的是,那些家伙是对的。当发送纯文本时,基本身份验证可能更糟,因为它会让您在没有任何实际安全性的情况下模糊一些安全感。

这是因为通过代理或类似方法拦截网络请求是微不足道的。如果您没有使用SSL,那么您发送的每个参数都很容易且可见,包括您的基本身份验证凭据。

回答你的问题“当我不使用SSL时,我是否应该使用auth?” - 这取决于。如果您想确保您的数据仅由经过身份验证的用户访问,那么它实际上是SSL或什么也不是。但是,如果您要做的只是减轻服务器的负担(即速率限制),那么可能不会。我将假设你正在寻找前者,在这种情况下我建议花时间去掌握SSL。有很多关于使用Node with SSL的资源,具体取决于您可能使用的其他框架(Express等)。