在HTTP请求中了解referer / referrer的安全方法是什么?

时间:2012-07-29 00:50:07

标签: javascript http node.js cross-domain

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

2 个答案:

答案 0 :(得分:2)

您是在为网站构建外部图片托管服务还是分享 HAS 为私有和安全的内容?如果是前者那么请提前阅读。

当然,标题可能是欺骗性的。这就是为什么你不应该担心它:

  1. 替代方案很难看:要构建安全的配置服务,您必须开发某种网站所有者在其末端实施的令牌系统。有可能,他不会与你签约,因为有更简单的替代方案。

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

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

答案 1 :(得分:1)

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

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

Cookie需要是您创建的,您可以验证无法轻易猜到或伪造的内容(例如来自您服务器的会话或加密令牌)。您通常会在一段时间后在cookie上设置过期时间,以便用户必须再次登录。

相关问题