页面为HTTPS时,URLReferrer为null

时间:2012-01-13 10:02:53

标签: asp.net ssl https referrer

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

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

由于

1 个答案:

答案 0 :(得分:13)

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

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


更新:这是HTTP specification says about coming from a secure site

  

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

正如您可能已经猜到的那样,这种限制无法解决。您唯一的选择是使用不同的验证模型。一种这样的方法是为用户提供密钥,并要求他们将其作为参数发送给请求。可以想到其他几种方法。