问题描述
Mixed Content: The page at ‘https://xxxx’ was loaded over HTTPS,
but requested an insecure frame ‘http://xxxx’.
This request has been blocked; the content must be served over HTTPS.
解决方案:
-
找到报错的页面吧引用的http协议资源链接都改成协议https链接
-
找到报错对应的页面,在页面模板中引入如下meta标签内容
说明:此代码意思是自动将http的不安全请求升级为https
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
- 在nginx增加代理配置
proxy_redirect http:// $scheme://;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// $scheme://;
}
说明:该指令会将后端响应的header,localhohst内容中的http://转换成https:// 就不会再强制跳转到http下了
X-Frame-Options是一个HTTP响应头,用来指示浏览器是否应该被允许在<frame>、<iframe>或者<object>中展示页面内容。这是一种防止点击劫持攻击的安全措施。
X-Frame-Options有三个值:
DENY:页面不会被嵌入到任何iframe或frame中。
SAMEORIGIN:页面只可以被同源域名下的页面嵌入到iframe或frame中。
ALLOW-FROM uri:页面可以被指定来源的页面嵌入,但这个指令已经被废弃,并且不应该再使用。
如果你没有在你的服务器配置中设置X-Frame-Options响应头,大多数现代浏览器会采用默认行为,通常是DENY。因此,如果你不希望页面被嵌入,你不需要设置这个响应头,或者显式地设置为DENY