在HTTP请求中了解引用者/引用者的安全方式是什么?

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

您无法使用引荐来源的头来validation浏览器。

如果你想authentication一个人,那么你可能需要一个login系统,他们提供的凭据(用户名/密码),你检查这些对你允许的用户群。 如果他们通过,那么你在浏览器中设置了一个特定types的cookie,表明他们是合法的用户。 该用户的后续请求将包含该cookie,您可以在每个请求上检查该cookie。

Cookie必须是您创build的,您可以validation不容易被猜测或伪造的内容(例如会话或来自服务器的encryption标记)。 您通常会在一段时间后在Cookie上设置过期时间,以便用户必须重新login。

你是build立一个网站的外部图像托pipe服务,还是分享一些东西是私人和安全的 ? 如果是前者,请阅读。

当然,头可以被欺骗。 这就是为什么你不应该担心它:

  1. 另一种方法是丑陋的:为了build立一个安全的configuration服务,你将不得不开发一种网站所有者在其最后实施的某种令牌系统。 有机会,他不会和你签约,因为有更简单的select。

  2. 欺骗将不得不在客户端完成。 很less有“用户”会这样做。 两个极客在自己的机器上欺骗标题不会对你造成太大的影响。 如果他们自动编写一些代理或中间件来完成这项工作,并且许多人开始使用它,这可能是一个问题。 不过这不太可能。

猜猜你已经知道了,但是因为你没有提到 – 这就是所谓的Hotlinking 。 谷歌这个话题find更多的资源。