让浏览器不再显示 https 页面中的 http 请求警报,网址锁变绿
2019-11-24 admin 前端 1213
本网站是laravel框架,使用宝塔ssl一键部署,但在访问时,浏览器地址栏的锁有感叹号,F12查看也有http请求警报,看着非常不爽。
经查找,发现一个最简易的方法是,在主模板app.blade.php里,加上这一行:
再次查看,网址栏变绿色安全的锁了,http报警也消失:
目前支持这个设置的还只有 chrome 43.0,不过我相信,CSP 将成为未来 web 前端安全大力关注和使用的内容。而 upgrade-insecure-requests 草案也会很快进入 RFC 模式。
从 W3C 工作组给出的 example,可以看出,这个设置不会对外域的 a 链接做处理,所以可以放心使用。
2020.2.25更新:发现存在一个问题,该方法是强制将http定向到https,会导致在网站是http访问时,资源无法访问,如图片无法显示,css无法加载等。因此,需要页面上加个判断,如果是https才启用:
//判断是否https $ishttp = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; if($ishttp == 'https://'){ echo ''; }
另外,为提升https的安全性,在nginx该网站的配置文件里可修改为类似淘宝:
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
记录完毕!