问题 页面为HTTPS时,URLReferrer为null


我们使用URLReferrer和在查询字符串中传递的代码来生成在线视频,以便只有我们的付费客户才能链接到我们的视频播放页面。该系统已经运行了一段时间。我知道URL引用者可能是欺骗性的,但谁会告诉他们的客户做这样的事情来访问视频?它对我们很有用。

但是,今天我被问到一个不合作的人。 URLReferrer为null,其站点为HTTPS。我已经在网上做了一些阅读,我得到的印象是当源页面是https时无法访问URL引用者。它是否正确 ?如果我制作了我们网站的https版本,会解决它吗?或者还有其他方法让我绕过这个吗?

谢谢


9014
2018-01-13 10:02


起源



答案:


您的在线调查是正确的。不设置HTTP Referrer标头或等效的主要原因是这可能是一个安全问题。引荐来源包含“你来自哪里”,这是私人信息,不应该暴露给他人,如果每个人都可以追踪到你的位置,那么它有什么用途呢?

因此:如果引荐来源是加密的(使用SSL或其他方式),则无法获取引荐来源。


更新:这是什么的 HTTP规范说来自安全站点

客户端不应该在(非安全)中包含Referer头字段   如果引用页面是使用安全传输的,则为HTTP请求   协议。

你可能已经猜到了,没有办法绕过这个限制。您唯一的选择是使用不同的验证模型。一种这样的方法是为用户提供密钥,并要求他们将该密钥作为参数发送给请求。可以想到其他几种方法。


13
2018-01-13 10:09



谢谢 - 密钥的问题只是有人可以将链接从他们的页面复制并使用它,这是我们试图避免的。由于它是一个视频,显而易见的解决方案是只允许他们将视频嵌入到他们自己的页面中,而不是链接到我们的播放页面。 - cgraus
已经+1了,只是为了挑剔,你引用了HTTP规范,而不是 HTTPS规范 ;-) - Bruno
@Bruno:你是对的,我没有给予足够的重视。固定。 - Abel


答案:


您的在线调查是正确的。不设置HTTP Referrer标头或等效的主要原因是这可能是一个安全问题。引荐来源包含“你来自哪里”,这是私人信息,不应该暴露给他人,如果每个人都可以追踪到你的位置,那么它有什么用途呢?

因此:如果引荐来源是加密的(使用SSL或其他方式),则无法获取引荐来源。


更新:这是什么的 HTTP规范说来自安全站点

客户端不应该在(非安全)中包含Referer头字段   如果引用页面是使用安全传输的,则为HTTP请求   协议。

你可能已经猜到了,没有办法绕过这个限制。您唯一的选择是使用不同的验证模型。一种这样的方法是为用户提供密钥,并要求他们将该密钥作为参数发送给请求。可以想到其他几种方法。


13
2018-01-13 10:09



谢谢 - 密钥的问题只是有人可以将链接从他们的页面复制并使用它,这是我们试图避免的。由于它是一个视频,显而易见的解决方案是只允许他们将视频嵌入到他们自己的页面中,而不是链接到我们的播放页面。 - cgraus
已经+1了,只是为了挑剔,你引用了HTTP规范,而不是 HTTPS规范 ;-) - Bruno
@Bruno:你是对的,我没有给予足够的重视。固定。 - Abel