导致“不安全内容”的cookie谷歌浏览器上有警告吗?
如果我访问我网站的主页(使用代码点火器),我的主页使用的是 http, 代码点火器设置一个包含所有会话信息的cookie。
如果我然后单击使用 https 的登录,我会收到不安全内容警告,我唯一能想到的就是 cookie,如果我重新启动浏览器,然后直接转到 https://mysite.com/login 然后我就没有收到不安全内容警告。
我该如何解决这个问题(注意主页不能是https)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此错误来自通过 http 向本应为 https 的页面提供的内容。例如,
、
或
。
Codeigniter 的问题是,您很可能使用
base_url()
或site_url()
来获取嵌入内容的完整绝对 URL,可能使用 http。您可以执行以下操作:
使用相对 URL,即
不指定协议。示例:
//example.com/path/to/image.jpg
有关此技术的更多信息,请参见:http://paulirish.com/2010/the-protocol-relative-url/在您创建的控制器的
__construct()
中需要使用https(或在需要它的方法中),加载不同的配置文件,重新定义您的基本 URL 以使用 https。请注意,在加载此配置文件之前,对于使用 html 输出的基本 url 的任何脚本/库来说都为时已晚。如果您在 IE 中加载页面,您应该会收到一条非常烦人的错误消息,该消息将为您提供所有不安全传递的内容的列表,以帮助您排除故障(其他浏览器也应该有此功能,但在 IE 中尤其突出) )。
编辑:看到您的注释,页面上没有通过 http 请求任何内容,只有 https,以及有关不存在 cookie 时会发生什么情况的注释。我的错误,我刚刚醒来 - 我应该更彻底地阅读这个问题:p
This error comes from content being served over http to a page that's supposed to be https. For example, an
<img>
,<link>
, or<script>
.The thing with Codeigniter is that it's very likely you're using
base_url()
orsite_url()
for full absolute URLs to the embedded content, probably using http.Here are some things you can do:
Use relative URL's, i.e.
<img src="/path/to/images.jpg">
Don't specify a protocol. Example:
//example.com/path/to/image.jpg
More on this technique here: http://paulirish.com/2010/the-protocol-relative-url/In the
__construct()
of the controller that you need to use https (or in the method that needs it), load a different config file that redefines your base url to use https. Note that it will be too late for any scripts/libraries that use the base url for html output before this config file is loaded.If you load the page in IE, you should get a very nagging error message that will give you a list of all the content that was delivered insecurely to help you troubleshoot (other browsers should have this feature as well, but in IE it's especially prominent).
EDIT: Saw your note that there is nothing on the page being requested via http, only https, and the note about what happens when no cookies are present. My mistake, I just woke up - I should have read the question more thoroughly :p
您正在安全 (https) 登录页面上加载不安全的内容(通常是图像/iframe)。
这意味着您引用的链接指向不安全的页面(不是 https)。这会导致错误,并提示用户是否加载此类内容。这是外部内容链接的问题,而不是您的 cookie 的问题。
编辑:要(暂时)解决问题,请找到外部内容的任何链接/引用并暂时禁用它,然后访问您的页面,提示/错误就会消失。
要解决此问题,您必须下载内容或使用网站上的文件来安全地下载内容以供该页面使用。
You are loading unsecure content (usually images/iframes) on your secure (https) login page.
What this means is that you are referencing a link to a page that is not secure (is not https). This will cause the error, and prompt users whether or not to load such content. It's a problem with the links to external content, not your cookies.
Edit: To (temporarily) fix the issue, find any links/references to external content and disable it for the time being, then visit your page and the prompt/error should go away.
To fix the issue, you'll have to download the content or use a file on your site to securely download the content for that page to use.