zoukankan      html  css  js  c++  java
  • HTTP的Referrer和Referrer Policy设置

    Referrer

    referrer是HTTP请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的。这对于Web Analytics非常重要,可以用于分析不同渠道流量分布、用户搜索的关键词等。
    但是,这个字段同时会造成用户敏感信息泄漏(如:带有敏感信息的重置密码URL,若被Web Analytics收集,则存在密码被重置的危险)。

    Referrer Policy States

    新的Referrer规定了五种策略:

    • No Referrer:任何情况下都不发送Referrer信息
    • No Referrer When Downgrade:仅当协议降级(如HTTPS页面引入HTTP资源)时不发送Referrer信息。是大部分浏览器默认策略。
    • Origin Only:发送只包含host部分的referrer.
    • Origin When Cross-origin:仅在发生跨域访问时发送只包含host的Referer,同域下还是完整的。与Origin Only的区别是多判断了是否Cross-origin。协议、域名和端口都一致,浏览器才认为是同域。
    • Unsafe URL:全部都发送Referrer信息。最宽松最不安全的策略。

    referrer具体设置

    CSP响应头

    CSP(Content Security Policy)

    Content-Security-Policy: referrer no-referrer|no-referrer-when-downgrade|origin|origin-when-cross-origin|unsafe-url;
    

    指令和指令值之间以空格分割,多个指令之间用英文分号分割。

    标签

    html页面的meta标签指定。
    如果content属性不是合法的取值,浏览器会自动选择no-referer策略。

    <meta name="referrer" content="no-referrer|no-referrer-when-downgrade|origin|origin-when-crossorigin|unsafe-url">
    

    标签的referer属性

    • 作用的只是当前标签。
    • 策略只有三中:不传、只host、都传(即完整URL)。
    • 针对单个链接设置的策略优先级比CSP和要高。
    <a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>
    

    PS:

    题外话:楼主之前使用CNZZ进行站长统计,7月份开始,单个页面的访问统计失效,全部归入首页。今天终于明白,应该是博客园增加了referrer policy导致。

  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/amyzhu/p/9716493.html
Copyright © 2011-2022 走看看