安全 测试一下 HTTP 和 HTTPs referer

hooopo for Shopper+ · 2016年06月02日 · 最后由 qinfanpeng 回复于 2016年06月03日 · 9039 次阅读

两个页面的 js 都是:

<script>alert(document.referrer);</script>

HTTP Link From HTTPS Page: http://o84x25gr9.bkt.clouddn.com/a.html

HTTPs Link From HTTPS Page:https://o8508s1y5.qnssl.com/a.html

另外 ruby china 没有 http page,找了 iteye 做测试:http://hooopo.iteye.com/blog/2302707

结论是只有从 HTTPs 页面点击 HTTP Link 的情况是不会传递 referer 的,所以不要认为所有页面点击都会带 referer。 Google Analytics 里面很多 Direct or unset 的流量其实一部分来自 https 网站,但由于你的网站是 http 的,就会追踪不到。

PS. Chrome 浏览器,其他未测。

刚用 gist 页面测试,发现更有趣的,页面 url 是 gist.github.com/xxxx,但获取到的是 gist.github.com:

发现他们页面用了referrer-policy-origin-when-cross-origin meta tag.

就是说设置了 origin-when-cross-origin 之后 HTTPS 到 HTTP 的 referer 也会被发送,不过只发送 host,不携带 path 和 query。这对于想让 http 网站知道是从自己网站获取的流量也是一个好办法。

Note: The "origin-when-cross-origin" policy causes the origin of HTTPS referrers to be sent over the network as part of unencrypted HTTP requests.

hooopo request.referrer 获取上级 URL 失败 提及了此话题。 09月01日 11:10
需要 登录 后方可回复, 如果你还没有账号请 注册新账号