问题描述:一个前端页面,有一个按钮点击后会请求ajax接口,拿到一个地址。此时js调用location.href=url报错。提示错误为
已阻止载入混合活动内容“http://url地址”。
这个问题是 An HTTPS page that includes content fetched using cleartext HTTP is called a mixed content page.意思是如果https页面引入了http的调用,就是一个混合内容页面,是不安全的,被浏览器阻止。
继续阅读,理清楚混合内容到底是什么东西,它有什么问题导致浏览器需要阻止它:
混合内容分为两类 mixed passive/display content 和 mixed active content。第一种起个名字叫被动或显示内容,第二种就叫活动内容。两者的区别在于其安全威胁,受到中间人攻击时,第一种可能的危害是页面内容错误、cookie被窃取,第二种会导致被引导到钓鱼网站、敏感数据被窃取。
现在遇到的问题是第二种,还不是很清楚其中的原理。先看看怎么解决这个问题。
继续翻越火狐的文档,找到了如何解决这个问题的文章,只写了一个方法将所有接口都提换成https。。。这个是解决问题的方法,本身接口就是http和https都支持。问题解决了,其实想找的是能否牺牲安全性,就要在https页面调用http接口,或降低一些安全性。毕竟有些用户可能无法提供https的接口。
继续找资料。
本文探讨了在HTTPS页面中因调用HTTP接口引发的混合内容问题,浏览器阻止此类行为的原因是安全考虑。混合内容分为被动显示内容和活动内容,后者可能导致更严重的安全风险,如钓鱼攻击和数据窃取。解决方法是将所有接口切换为HTTPS。尽管某些情况下用户可能无法提供HTTPS接口,但为了保障安全性,文章建议尽量避免牺牲安全性的做法。

1714

被折叠的 条评论
为什么被折叠?



