6

我正在使用 nodejs 编写图像上传服务。付费客户将能够将图像文件发送到我在服务器上设置的端点。但是,当每个请求进来时,我需要确认它实际上是一个付费客户发出请求。我想过让客户给我他们的域名,我会检查引用标题。但是,有人可以轻松地欺骗引荐来源标头并使用我的服务而无需付费。SaaS 开发人员如何面对这个技术问题?是否可以在不要求我的客户拥有一些服务器端代码的情况下解决此问题?

4

2 回答 2

2

您是在为网站构建外部图像托管服务,还是要共享必须私密安全的内容?如果是前者,请提前阅读。

当然,标头可以被欺骗。这就是您不必担心的原因:

  1. 替代方案是丑陋的:要构建安全的供应服务,您必须开发某种令牌系统,网站所有者也在他的最后实施。很有可能,他不会和你签约,因为有更简单的选择。

  2. 欺骗必须在客户端完成。很少有“用户”会真正做到这一点。两个极客在他们自己的机器上欺骗标题不会对你有很大的影响。如果他们编写了一些代理或中间件来自动完成这项工作并且许多人开始使用它,那么这可能是一个问题。然而,这不太可能。

猜猜你已经知道了,但既然你没有提到 - 它被称为Hotlinking. 谷歌这个主题以找到更多资源。

于 2012-07-29T06:18:19.923 回答
1

您无法使用引用者标头对浏览器进行身份验证。

如果您想对个人进行身份验证,那么您可能需要一个登录系统,他们向(用户名/密码)提供凭据,并根据您允许的用户群检查这些凭据。如果他们通过了,那么您在浏览器中设置了某种类型的 cookie,表明他们是合法用户。该用户的后续请求将包含该 cookie,您可以检查每个请求。

cookie 必须是您创建的、您可以验证且不易被猜测或伪造的东西(如会话或来自服务器的加密令牌)。您通常会在一段时间后对 cookie 设置过期时间,以便用户必须再次登录。

于 2012-07-29T02:25:31.407 回答