安全 测试一下 HTTP 和 HTTPs referer

hooopo for Shopper+ · 发布于 2016年6月02日 · 最后由 qinfanpeng 回复于 2016年6月03日 · 1106 次阅读
8

两个页面的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.

共收到 1 条回复
3790

很有用,

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册