联系支持

我们通过电子邮件回复,通常两天内。

为防止滥用,Google reCAPTCHA 会检查这次提交,其间会向 Google 传输数据。脚本只在此表单打开时才加载。

← 全部文章

在 HTTPS 页面上使用计数器

一个使用 HTTPS 的网站,访客能看到一个小锁图标。然后页面里粘贴进了来自另一个网站的东西,小锁图标消失了——或者粘贴进去的东西干脆就不出现了。

这就是混合内容问题,值得花十分钟弄清楚,因为它会悄无声息地破坏很多旧的嵌入式小组件。

浏览器对此做了什么

一个通过 HTTPS 加载的页面,不允许悄悄地通过明文 HTTP 拉取自己的部分内容。能够篡改一个未加密图片请求的窃听者,就能篡改访客看到的内容,所以浏览器拒绝让两者混在一起。

页面httpshttp被拦或被升级——由浏览器决定现在的代码片段https不需要配置

对于图片和脚本,现代浏览器要么自行把请求升级为 HTTPS,要么直接拦截。具体会是哪一种,取决于浏览器和资源类型,而这两种结果都不值得依赖。

Stats4U 的应对方式

已经在两个地方处理好了。脚本内部写入的计数端点地址就是 HTTPS,所以不管加载它的页面本身是怎么提供的,它发出的每一个请求都是加密的。而且服务器对明文 HTTP 请求会用永久重定向跳转到 HTTPS——撰写本文时已经核实过,脚本本身和计数器图片都是如此。

因此,用当前代码片段嵌入的计数器不会破坏锁标,也没有什么需要配置的。

唯一仍可能出问题的情况

如果曾经有人把计数器脚本复制进了站点自己的页面,而不是链接到它——这在当年是常见做法,直到今天仍有页面这么做——那么跑着的就是当初那个时间点被冻结下来的一份副本。一份足够老的副本,内部写的就是明文 HTTP 地址,而我们这边不管怎么修复都触及不到它。

花两分钟检查一下:查看页面的源代码,搜索 http:// 加上我们的域名。如果找到了,就把整段嵌入代码替换成统计页面上当前提供的代码片段。

顺便说一句,更值得的做法是链接这个脚本,而不是自己托管一份副本。另有一篇文章专门讲了原因,而这个道理远不止适用于计数器。

广告