精华内容
下载资源
问答
  • Referer

    2019-07-18 17:12:21
    标题:https页面内http链接跳转时...在这种情况下,referer信息不会传递 解释:https://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3 Clients SHOULD NOT include a Referer header field in a (n...

    标题:https页面内http链接跳转时的referer问题

    Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol
    在协议为加密的https页面中不应该让http链接请求的header中携带referer字段

    • 解决方案:
    1. 升级https,链接地址改为https(同时站点也需支持https)
    2. https页面添加meta元数据  <meta name="referrer" content="unsafe-url">,这样强制添加referer信息
    • 备注:meta元数据中的content值,还可为:

    never、no-referrer:即不添加referer信息;

     

    origin:即referer信息只有schema://domain:port,即协议://域名:端口,没有路径信息;

    no-referrer-when-downgrade:当协议降级时,不发送referer信息,也就是本文描述的问题,现大多数浏览器默认的;

    origin-when-crossorigin:当跨域时,origin类型的referer,即只有协议://域名:端口,没有路径信息;

     

    其他:

    https://www.freebuf.com/news/57497.html 

    展开全文
  • referer

    千次阅读 2010-12-03 16:03:00
    由于项目需要,我接触到了javascript中的referer. 在网上找资料的时候,发现有这两篇文章对referer写得蛮好的,现把它们转贴到下面,一起学习.   第1篇--...

    由于项目需要,我接触到了javascript中的referer. 在网上找资料的时候,发现有这两篇文章对referer写得蛮好的,现把它们转贴到下面,一起学习.

     

    第1篇--(http://huxiong888.blog.163.com/blog/static/1344952201061501535775/)

    Referrer的重要性

    HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页。例如在www.sina.com.cn/sports/上点击一个链接到达cctv.com首页,那么就referrer就是www.sina.com.cn/sports/了。在Javascript中,我们可以通过 document.referrer来获取同样的信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。这对于Web Analytics来说,是非常重要的,这可以告诉我们不同渠道带来的流量的分布情况,还有用户搜索的关键词等,都是通过分析这个referrer信息来获取的。

    但是,出于各种各样的原因,有时候Javascript中读到的referrer却是空字符串。下面总结一下哪些情况下会丢失referrer。

    Referrer丢失的几个场景

    修改Location对象进行页面导航

    Location对象是一个用于页面导航的非常实用的对象。因为他允许你只变更Url的其中一部分。例如从cn域名切换到com域名,其他部分不变:

    window.location.hostname = "example.com";

    但是,通过修改Location进行页面导航的方法,会导致在IE下丢失Referrer。

    IE5.5+ 下返回空字符串

    Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回来源网页

    window.open方式打开新窗口

    示例:

    <a href="#" onclick="window.open('http://www.google.com')">访问Google</a>

    点击此链接会在新窗口打开Google网站,我们在地址栏中输入以下js代码就可以看到发送的referrer了。

    javascript:alert(document.referrer)

    测试结果:

    IE5.5+ 下返回空字符串

    Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回来源网页

    如果是同个域名下通过此方式跳转的,那么我们可以通过访问windoww.opener对象去获取丢失的referrer信息。代码如下:

    <script type="text/javascript">
        var referrer = document.referrer;
        if (!referrer) {
            try {
                if (window.opener) {
                    // IE下如果跨域则抛出权限异常
                    // Safari和Chrome下window.opener.location没有任何属性
                    referrer = window.opener.location.href;
                }
            }
            catch (e) {}
        }
    </script>

    跨域的话则没辙了~

    鼠标拖拽打开新窗口

    鼠标拖拽是现在非常流行的用户习惯,很多浏览器都内置或者可以通过插件的方式来支持鼠标拖拽式浏览。但是通过这种方式打开的页面,基本全都丢失 referrer。并且,这种情况下,也无法使用window.opener的方式去获取丢失的referrer了。

    已测试:

    Maxthon2.5.2,Firefox的FireGesture插件,Chrome3.0+,Opera9.6,Safari3.2。

    点击Flash内部链接

    点击Flash上到达另外一个网站的时候,Referrer的情况就比较杂乱了。

    IE下,通过客户端Javascript的document.referrer读取到的值是空的,但是如果你使用流量监控软件看一下的话,你会发现,实际上HTTP请求中的Referer报文头却是有值的,这可能是IE实现的Bug。同时,这个值指向的是Flash文件的地址,而不是来源网页的地址。

    Chrome4.0下点击Flash到达新窗口之后,Referrer也是指向的Flash文件的地址,而不是源网页的地址。

    Chrome3.0和Safari3.2是一样的,都是会丢失Referrer信息。

    Opera则和Firefox一样,Referrer的值都是来源网页的地址。

    HTTPS跳转到HTTP

    从HTTPS的网站跳转到HTTP的网站时,浏览器是不会发送referrer的。这个各大浏览器的行为是一样的。

    例如,我们在HTTPS下使用Google Reader或是Gmail的时候,点击某个链接去到另外一个网站,那么从技术上来说,这样的访问和用户直接键入网址访问是没有什么分别的。

    Referrer丢失对于广告流量监控的影响

    Referrer如果丢失,Web Analytics就会丢掉很重要的一部分信息了,特别对于广告流量来说,就无法知道实际来源了。目前国内好多用了Google Adsense广告的网站,都使用了window.open的方式来打开广告链接,因此IE下会丢失Referrer,而我们知道,IE是目前市场份额最大的浏览器,因此其影响是很大的。很多流量统计工具会因此将这部分流量归入“直接流量”,和用户直接键入网址等价了。

    对于这样的情况,需要让广告投放者在投放广告的时候,给着陆页面的Url加上特定的跟踪参数。

    例如,某个Flash广告,点击之后到达的网址是http://www.example.com/,为了监控此流量是从哪个渠道过来的,我们可以修改此投放的着陆Url,改成http://www.example.com/?src=sina,类似这种方式,然后在着陆页面中使用 Javascript代码提取此src参数,这样就可以得到广告来源信息。

    在投放Google Adwords的时候,后台系统有一个“自动标记”的选项,当启用此选项的时候,Google在生成所有广告的着陆页面Url的时候,就会自动加上一个 gclid的参数,这个参数能够将Google Analytics后台和Adwords广告后台的数据进行整合。这样就可以知道广告流量对应于哪个广告系列,哪个广告来源和广告关键词等信息了。和上面提到的思路其实是类似的。只不过Google自动帮你做了Url的修改了而已。

     

    第二篇--(http://blog.163.com/alex_kame/blog/static/14546748201072173718721/)

     

    兼容IE和FF:获取Referer的JS方法

    发现一个关于浏览器兼容的问题,当用JS 执行代码 window.location.href=”http://ityizhan.com” 来进行跳转的时候,Firefox 可以获取到到HTTP_REFERER页面,但是在IE中这一项为空,后来查了一些相关资料,发现在IE 中通过 window.location.href 或者是 是无法获取HTTP_REFERER, 真是搞不懂 IE 的浏览器,很多浏览器运行的很好的东西,它就是不支持,最后没有办法,只能PHP伪造来源HTTP_REFERER的方法或者用JS来伪造。
    IE可以识别的 HTTP_REFERER 提交是通过click 触发的事件或者是 Form 表单提交的请求,下面是根据网上的资料总结的一个方法:
    <script>
    function referURL(url){
    var isIe=(document.all)?true:false;
    if(isIe) {
    var linka = document.createElement(’a');
    linka.href=url;
    document.body.appendChild(linka);
    linka.click();
    }else {
    window.location = url;
    }
    }

     

    var url=“www.myposts.cn”
    referURL(url);
    </script>

    这个方法先是用 document.all 来判断当前的浏览器是否是IE, 如果是的话就生成一个link,然后自动执行 onclick 事件,如果不是的话就用JS 跳转。这样在处理页面就可以得到 HTTP_REFERER 了

    此方法在IE, Firefox, Safari , Chrome 测试通过

    展开全文
  • HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
  • referer.txt

    2019-11-22 10:58:04
    html跳转阻断referer,跳转后台的页面获取不到来源页面的referer,某些特定场景下很实用
  • Referer和空Referer

    2019-05-29 11:24:00
    Referer和空Referer 最近公司有个接口需要针对几个域名加白名单,咨询网宿同学后,网宿同学问我是否需要允许空refer访问,当时一下就懵逼了,然后问了网宿同学空referer是什么意思,当时没听懂,后来查了下才明白,...

    参考CSDN 原文:https://blog.csdn.net/hxl188/article/details/38964743 

    Referer和空Referer

    最近公司有个接口需要针对几个域名加白名单,咨询网宿同学后,网宿同学问我是否需要允许空refer访问,当时一下就懵逼了,然后问了网宿同学空referer是什么意思,当时没听懂,后来查了下才明白,于是记录下。

    什么是Referer?

    这里的 Referer 指的是HTTP头部的一个字段,也称为HTTP来源地址(HTTP Referer),用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着 HTTP Referer 头部网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。例如我现在在bing中搜索kubeasz,然后通过检索的第一条点进去,这个时候按F12后就会显示来源地址来自https://cn.bing.com/,截图如下所示:

     

     

    什么是空Referer,什么时候会出现空Referer?

    首先,我们对空Referer的定义为,Referer 头部的内容为空,或者,一个HTTP请求中根本不包含Referer头部。

    那么什么时候HTTP请求会不包含Referer字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。

    比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的,因为这是一个“凭空产生”的HTTP请求,并不是从一个地方链接过去的,例如我在浏览器中输入https://cn.bing.com/,然后按F12查看,是不会显示referer这个字段的,截图如下所示:

     

    那么在防盗链设置中,允许空Referer和不允许空Referer有什么区别? 在防盗链的白名单设置中,如果指名白名单中包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的;

    但如果不指名需要包含空的Referer,那么通过浏览器直接访问也是被禁止的。

    转载于:https://www.cnblogs.com/uglyliu/p/10942732.html

    展开全文
  • 当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理,不过这个Referer是可以伪造,下面看一个示例,大家就明白了
  • 如果URL中存在外部主机,则来自请求的Referer标头中的域 空的 支持我们 我们投入了大量资源来创建。 您可以通过来支持我们。 非常感谢您从家乡寄给我们一张明信片,其中提到您使用的是哪个包装。 您可以在上找到...
  • Referer-parser.cr:Snowplow的Referer-parser的Crystal实现
  • http header refererreferer policy

    千次阅读 2019-07-11 14:10:27
    Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer 。比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,...

    Referer  是  HTTP  请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含  Referer  。比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:
    Referer=http://www.google.com
    由此可以看出来吧。它就是表示一个来源。所以referer可以用于检测请求的来源

    Referer的作用?

    1.防盗链。
    我在www.google.com里有一个www.baidu.com链接,那么点击这个www.baidu.com,它的header信息里就有:
    Referer=http://www.google.com
    那么可以利用这个来防止盗链了,比如我只允许我自己的网站访问我自己的图片服务器,那我的域名是www.google.com,那么图片服务器每次取到Referer来判断一下是不是我自己的域名www.google.com,如果是就继续访问,不是就拦截。
    将这个http请求发给服务器后,如果服务器要求必须是某个地址或者某几个地址才能访问,而你发送的referer不符合他的要求,就会拦截或者跳转到他要求的地址,然后再通过这个地址进行访问。

    2.防止恶意请求。
    比如静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须 Referer  为我自己的网站。
    Referer=http://www.google.com

    Referer不存在或空Referer是怎么回事?什么情况下会出现空Referer?

    首先,我们对空 Referer的定义为, Referer  头部的内容为空,或者,一个 HTTP  请求中根本不包含 Referer  头部。
    那么什么时候 HTTP  请求会不包含 Referer  字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。
    比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer  字段的,因为这是一个“凭空产生”的 HTTP  请求,并不是从一个地方链接过去的。
    那么在防盗链设置中,允许空Referer和不允许空Referer有什么区别?
    允许 Referer  为空,意味着你允许比如浏览器直接访问,就是空。

    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>

    spring中获取referer的方法

    public ViewDashboardBoard getData(@RequestParam(name = "id") Long id , HttpServletRequest request) {
        String referer = request.getHeader("referer");}
    展开全文
  • Referer简记

    2019-03-17 18:29:18
    一、什么是RefererReferer是 HTTP 请求header的一部分,当浏览器(或者模拟浏览器行为)向web服务器发送请求的时候,头信息里有包含有Referer ,它表示一个来源。比如我现在在访问百度,打开F12查看请求头的...
  • ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨
  • ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法
  • 本文描述了一个关于 http 协议中 referer 的 metadata 参数的提议,使用这个 metadata 参数,html 文档可以控制 http 请求中的 referer ,比如是否发送 referer、...虽然有一些方法可以控制 referer ,比如 flash,...
  • 一、 referer是什么referer:引用页。HTTP请求头信息中,referer用于提供访问来源的信息,客户端发送请求的时候,自主决定是否加上该字段。服务器一般使用referer识别访问来源,可能以此进行统计分析、日志记录以及...
  • HTTP Referer

    2019-09-28 19:50:46
    HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器以此可以获得一些信息用于统计和处理。比如搜狗主页上链接到百度,百度的服务器...
  • Http协议字段Referer

    千次阅读 2014-09-23 11:13:31
    Referer
  • Referer 超长

    2020-04-22 16:56:45
    Referer会获取url上包含参数所有数据,超长会拦截
  • referer是什么referer 中文意思是:参照页面,引用页。下图直观感受,(づ ̄ 3 ̄)づimage直接在浏览器中输入url地址来直接访问图片/js/css等资源时是没有referer的,如果有referer说明是引用过来的,要么是从HTML页面,...
  • referer referer是什么: 图片防盗链的技术应该还有其他的,目前了解到的是浏览器的referer,其实这是错误的拼写,正确是应该是referrer。 不过现在可以看到Chrome的开发者工具里,还是显示的是前者,拼写不...
  • 使用 Referer Meta 标签控制 referer 55.jpg 本文描述了一个关于 http 协议中 referer 的 metadata 参数的提议,使用这个 metadata 参数,html 文档可以控制 http 请求中的 referer ,比如是否发送 referer、只...
  • PHP伪造referer实例代码

    2020-10-30 06:49:30
    伪造referer实例代码,主要用于一些突破防盗链
  • Referer校验

    千次阅读 2018-08-24 20:55:26
    Referer是http协议中定义的,Referer就是上一个页面的地址,这个是浏览器会在点击一个链接时自动添加到请求头中的   查看一个request信息: GET /adjs.php?n=348893119&amp;what=zone:382&amp;charset=...
  • Referer-mod Referer Modifier是Firefox的Web扩展,用于修改HTTP请求中的Referer标头和匹配的Javascript document.referrer属性。 对于每个目标域,可以配置以下五个操作之一: 保留:请勿修改引荐来源网址 修剪:...
  • CSRF绕过后端Referer校验分正常情况和不正常的情况,我们这里主要讨论开发在写校验referer程序时,不正常的情况下怎么进行绕过。正常情况正常的情况指服务器端校验Referer的代码没毛病,那么意味着前端是无法绕过的...
  • Referer详解

    2017-10-09 11:47:10
    什么是HTTP Referer 简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器 籍此可以获得一些...Referer其实应该是英文单

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,773
精华内容 60,709
关键字:

referer