在谷歌浏览器上导致“不安全内容”警告的cookie?

时间:2011-06-25 02:52:47

标签: php codeigniter cookies https protocols

如果我访问我网站上的主页(使用代码点火器),我的主页正在使用http, 代码点火器设置一个包含所有会话信息的cookie。

如果我然后单击登录,这是使用https我得到不安全的内容警告,我唯一能想到的是cookie,因为如果我重新启动浏览器然后直接进入https://mysite.com/login然后我得到没有不安全的内容警告。

如何解决此问题(请注意,主页不能是https)。

2 个答案:

答案 0 :(得分:2)

此错误来自通过http提供给应该是https的页面的内容。例如,<img><link><script>

使用Codeigniter的事情是,您很可能使用base_url()site_url()来获取嵌入内容的完整绝对URL,可能使用http。

您可以执行以下操作:

  1. 使用相对网址,即<img src="/path/to/images.jpg">

  2. 不指定协议。示例://example.com/path/to/image.jpg有关此技术的更多信息,请访问:http://paulirish.com/2010/the-protocol-relative-url/

  3. 在您需要使用https的控制器的__construct()中(或在需要它的方法中),加载一个不同的配置文件,重新定义您的基本URL以使用https。请注意,在加载此配置文件之前,对于使用html输出的基本URL的任何脚本/库来说为时已晚。

  4. 如果你在IE中加载页面,你应该得到一个非常唠叨的错误消息,它将为你提供一个不安全地提供的所有内容的列表,以帮助你排除故障(其他浏览器也应该具有此功能,但在IE中它特别突出)。

    编辑:看到您的网页上没有任何内容通过http请求,只有https,以及有关没有Cookie时会发生什么的说明。我的错误,我刚刚醒来 - 我应该更彻底地阅读这个问题:p

答案 1 :(得分:0)

您正在安全(https)登录页面上加载不安全的内容(通常是图片/ iframe)。

这意味着您引用的链接指向不安全的页面(不是https)。这将导致错误,并提示用户是否加载此类内容。这是外部内容链接的问题,而不是您的cookie。

修改:要(暂时)解决问题,找到外部内容的任何链接/引用并暂时禁用它,然后访问您的页面,提示/错误应该消失。< / p>

要解决此问题,您必须下载内容或使用您网站上的文件安全下载该网页的内容以供使用。