【问题标题】:URLReferrer is null when page is HTTPS当页面为 HTTPS 时,URLReferrer 为空
【发布时间】:2012-02-09 13:12:35
【问题描述】:

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

但是,今天我被问到一个对它不起作用的人。 URLReferrer 为空,其站点为 HTTPS。我在网上做了一些阅读,我得到的印象是当源页面是 https 时无法访问 URL 引荐来源网址。它是否正确 ?如果我制作了我们网站的 https 版本,会解决它吗?或者我有什么其他方法可以解决这个问题?

谢谢

【问题讨论】:

    标签: asp.net ssl https referrer


    【解决方案1】:

    您的在线研究是正确的。不设置 HTTP Referrer 标头或等效项的主要原因是这可能是一个安全问题。推荐人包含“你来自哪里”,这是私人信息,不应该暴露给其他人,如果每个人都可以跟踪你去过的地方,那么拥有一个安全的网站还有什么用?

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


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

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

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

    【讨论】:

    • 谢谢 - 密钥的问题只是有人可以从他们的页面上复制链接并使用它,这是我们试图避免的。由于是视频,显而易见的解决方案是只允许他们将视频嵌入到自己的页面中,而不是链接到我们的播放页面。
    • 已经 +1 了,只是为了挑剔,你引用的是 HTTP 规范,而不是 HTTPS spec ;-)
    • @Bruno:你说得对,我没有给予足够的关注。固定。
    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2015-04-01
    • 2020-03-19
    • 2014-04-23
    • 1970-01-01
    相关资源
    最近更新 更多