8

我们正在考虑在我们的网站中启用 SSL 的部分,但某些页面包含来自第三方供应商(如 Google AdSense)的广告。

我认为这会给我们的用户带来一个烦人的问题,因为当他们查看带有广告的页面时,他们会看到诸如“此页面包含安全和非安全项目”之类的警告消息。但是,当我使用 https 而不是 http 浏览 Gmail 时,我在 Firefox 中看不到该警告。

有谁知道Gmail如何隐藏这个?

4

6 回答 6

19

某些页面包含来自第三方供应商的广告(例如 Google AdSense)

那么浏览器是正确的——那是不安全的。

在 AdSense 和大多数其他广告网络中,您会获得一个指向 JavaScript 的链接。当您引用任何外部 <script> 时,您将完全信任您的页面内容给外部脚本提供者。你需要相信他们只做他们说要做的事情(展示广告),而不是像从它所在的页面接管登录表单并窃取你在其中输入的值这样邪恶的事情,或者,如果“广告”脚本包含在您的银行帐户页面上,自动清空您的所有资金。

因此,外部脚本是一个信任问题,但如果您使用的供应商为其广告提供 HTTPS 接口,那么至少它只是您必须信任的一个已知方。如果广告提供商只有一个 HTTP 接口,那么您将信任发送给任何可以通过中间人或类似攻击获取控制权的人。您有效地将整个页面的信任级别降低到普通未加密 HTTP 的信任级别,因此浏览器抱怨该页面实际上并不比任何旧的 HTTP 站点更安全是完全正确的。

于 2009-02-25T23:19:31.633 回答
15

Google 的文档表明这是一个已知问题并且没有提供解决方法:https ://www.google.com/adsense/support/bin/answer.py?answer=10528

于 2009-02-25T23:10:09.440 回答
4

如果您尝试包含非安全内容并控制显示的内容,则可以编写一个将 url 作为参数的处理程序。

由于处理程序托管在 SSL 中,因此它可以获取 html,并通过 SSL 将其流式传输回浏览器。实际上,它充当了您的小代理。

过去,我已经为许多项目执行此操作,以从网络内获取文件,而不会暴露实际网络本身。

使用此处的信息:http ://www.csharp-station.com/HowTo/HttpWebFetch.aspx您可以轻松调整它以获取参数(您要获取的实际网址)...

因此,在您呈现的页面中,您将调用https://my.domain.com/pages/HttpWebFetch.aspx?url=http://ads.google.com/ HttpWebFetch.aspx 然后将检索并通过 https 中继页面内容从而消除安全/不安全警告。

于 2009-02-26T13:00:26.417 回答
3

由于这是分析的答案,您可以使用它来不在您的安全页面上显示广告

if ("http:" == document.location.protocol) { /*show your adds here*/ }

我从如何在我的网站上进行分析得到这个想法

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

我承认这意味着您不能在您的安全网页上展示广告,但您可能不希望 Google 阅读您的安全网页内容并展示广告。(这是在为谷歌找借口,但如前所述,他们就是不支持)

要回答您的 GMail 问题...(在这里使用 Firebug,所以我可能会解释错误)

  1. 我使用始终安全的连接登录 gmail。无广告。
  2. 我打开控制台查看 gmail 建立了哪些连接。
  3. 我清除控制台
  4. 我单击右侧显示广告的消息。

Gmail 只打了两个电话。首先访问https://mail.google.com,我猜这是我的电子邮件。第二个是发到https://mail.google.com/mail/channel/的 POST

我猜(其他人都纠正我)Gmail 请求来自提供广告的代理的帖子。

Gmail 将内容发送到代理,代理获取广告,代理将内容发送回 Gmail。一切安全。

总猜测那里

感谢您的反对,但没有解释什么没有帮助

于 2009-02-25T23:39:22.897 回答
2

“有人知道 Gmail 是如何隐藏这个的吗?”

简短的回答:他们使用 https 来获取广告。通过Firebug中的 Net 选项卡查看 GMail 的页面加载,我看到页面上的广告在带有 URL 的请求中,https://mail.google.com/mail/?ui=2&ik=bbff8a9f5c&view=ad&ak=is00jux7yq7kgk730lqdkxklz03d9d8因此看起来他们确实有办法通过 https 提供广告,但仅限于他们自己的网站

于 2009-02-25T23:53:24.580 回答
0

在将我所有的 http:// 更改为 https:// (或相对)之后,我仍然遇到这个问题,最后我意识到这是由于缓存造成的。我刷新了浏览器缓存,一切正常。此外,您的链接(a href=whatever)似乎可以是 http,这对大多数人来说可能很明显,但一开始我不确定 :)

于 2011-08-17T13:14:19.943 回答