当前位置: 首页 > 面试题库 >

Javascript中的ERR_INSECURE_RESPONSE处理技巧

饶高雅
2023-03-14
问题内容

我们的Web应用程序中有很多ajax调用,而所有都是https请求(我们的IT团队要求),是的,我们已经打开了标头以允许跨域。但是问题是我们在我们的所有应用程序内部都使用了自己的自定义证书,因此,基本上,当我们调用ajax时我会出错:

无法加载资源:net :: ERR_INSECURE_RESPONSE

如果我在浏览器中打开URL并接受证书,则ajax调用可以正常工作。所以我的问题是,有没有办法通过Javascript处理此问题?还是添加受信任的证书可以解决此问题?另外,即使我们添加了受信任的证书,我在Ajax中是否还会再次遇到任何问题?

注意:我们正在Chrome浏览器中测试所有这些


问题答案:

是的,将证书添加到用户的受信任证书列表中可以解决您的问题。只要您的服务器正确设置为服务器CORS(并且似乎是正确的,基于接受证书后的成功情况),证书就是您唯一的问题。

HTTPS具有两个安全好处:

  1. 您知道您与与之交谈的人之间的通信通道是安全的(例如,当爱丽丝与鲍勃交谈时,她知道没有其他人可以收听)
  2. 您知道 您正在 与之 交谈的人 实际上就是他们声称的身份(例如,当爱丽丝与bob.com她交谈时,她知道这实际上是她所知道的服务器,bob.com而不是冒充者)

第一个好处是自动的。它是由加密协议保证的,不能被剥夺(除非对安全漏洞进行非常复杂的攻击,这些攻击通常会很快修复)。

第二个好处严格来说并不是技术上的好处:这是 信任的问题
。服务器使用证书将其公钥(授予第一个安全组件)与自己的身份链接。这些公钥证书由用户信任的机构(称为 证书颁发机构 (CA))签名。

当您尝试连接到时bob.com,该站点会为您提供公共密钥以执行安全通信。您对此表示怀疑,并说:“当然,这个公钥将允许我安全地与您交谈,但是我怎么知道您是
真的 bob.com?” 然后,服务器会为您提供一个 CA签名的证书 ,其中包含:

我们广受信赖的VeriSign证书颁发机构在我们的调查中会做透彻的研究,特此证明以下公用密钥确实确实属于bob.com

公钥: ZGdlZGhydGhyaHJ0eWp5cmo...

经过验证的签名,

威瑞信

有许多主要的证书颁发机构,当且仅当它们已经可靠地验证了公钥确实属于域名时,才能(通过操作系统和浏览器)信任他们签发签名的证书。由于您的操作系统已经信任这些签名,因此我们无需任何确认即可使用它们。

当您使用自签名证书时,没有受信任的CA会验证您的证书确实属于您的域名。任何人都可以出示以下文件:

嘿,伙计,这绝对是100%的公共密钥bob.com

公钥: WGdoZmpodHlqa2p1aXl1eWk...

相信我们,写这篇便笺的人,好吗?我们绝对确定这是关键。写这个笔记的人是奔跑的人bob.com。我们承诺。

签,

写这个笔记的家伙

它上面没有可信任的签名。用户必须决定是否希望接受公钥真正所属的证书证明bob.com

做出有意义的决定是一个困难的过程-您需要检查证书并在某处找到公钥的预先存在的受信任记录(或与站点管理员或服务台代表联系)。实际上,您需要对证书的信任来自
某处 ,因为它不是来自主要证书颁发机构的受信任签名。

允许JavaScript自动确定信任度是没有意义的。整个要点是, 用户 必须确定证书是否可信,然后对系统的证书库进行适当的修改。

可以
假设性地做了Ajax请求,但它不会是漂亮。您需要向用户显示一个浏览器UI屏幕,询问用户是否要信任脚本尝试访问的任何域的自签名证书。除了对浏览体验造成极大干扰之外,这还可能造成混乱的危险:如果我正在上example.com,并且突然(由于我不知道的脚本操作),我被要求信任bob.com,我的证书可能完全基于我对的信任而接受它example.com

将证书添加到系统的受信任证书列表中,或由系统已信任的CA对其进行签名。



 类似资料:
  • 本文向大家介绍JavaScript小技巧整理,包括了JavaScript小技巧整理的使用技巧和注意事项,需要的朋友参考一下 本文整理总结了JavaScript的小技巧。分享给大家供大家参考,具体如下: 1.组织默认事件 阻止默认事件,h5默认的input type='date'在某些浏览器和android设备上没有效果,这时要调用h5+的时间选择器,但是要组织input默认的click事件,代码如

  • 问题内容: 我刚刚开始使用Go。我的代码开始有很多这样的东西: 或这个 在Go中检查和处理错误是否有一些好的习惯用法/策略/最佳实践? 编辑澄清:我不是在鼓动或建议Go团队提出更好的建议。我问的是我做对了还是错过了社区提出的一些技巧。谢谢大家 问题答案: 您的代码是惯用的,我认为这是可用的最佳实践。有些人肯定会不同意,但我会认为这是Golang中所有标准库中都看到的样式。换句话说,Go作者以这种方

  • 本文向大家介绍详解javascript中的事件处理,包括了详解javascript中的事件处理的使用技巧和注意事项,需要的朋友参考一下 一.事件传播机制   客户端JavaScript程序(就是浏览器啦)采用了异步事件驱动编程模型。当文档、浏览器、元素或与之相关的对象发生某些有趣的事情时,Web浏览器就会产生事件(event)。如果JavaScript应用程序关注特定类型的事件,那么它可以注册当这

  • 这看起来真的很奇怪。。。 我有一些JSON。。。 但是当我试图解析它并使用它时。。。 什么都没有出现,但是如果我只是做$("p"). text(json);它告诉我这是一个对象,我可以看到JSON在Firebug中是正确的,有什么想法吗?

  • 问题内容: 我在JavaScript中有大量的数值。我想通过将它们四舍五入到最接近的倍数并将它们转换为字符串来对它们进行分组。 如何解决烦人的浮点精度? 例如: 我尝试了两件事: 和: 问题答案: 这篇文章:如何处理JavaScript中的浮点数精度? 您有几种选择: 对小数使用特殊的数据类型,例如decimal.js 将结果格式化为固定数量的有效数字,如下所示: 将所有数字转换为整数

  • 本文向大家介绍C#异常处理的技巧和方法,包括了C#异常处理的技巧和方法的使用技巧和注意事项,需要的朋友参考一下 c#中或多或少回出现一些意向不道的异常,那么如何去捕获这个异常就非常的关键--这个异常可能是系统的不可控因素也有可能是程序本身才一个异常。下面就具体的解决方案提供给大家,希望有所帮助 从最常见的分母为0的情况的实例 通过try catch finally三个关键字的一个语法结构图。fin