我想收集特定网站上的SSL证书的某些细节。我知道这很简单,在Linux/MacOSX上使用openssl工具。然而,在JavaScript中可能是相同或相似的?有没有办法使用JavaScript获取SSL证书详细信息?
我知道浏览器处理套接字连接,并且SSL握手发生在任何一方发送数据之前。然而,在一个XMLHTTPRequest中,我想知道它是否有可能获得这些细节作为某种响应代码等?
我想收集特定网站上的SSL证书的某些细节。我知道这很简单,在Linux/MacOSX上使用openssl工具。然而,在JavaScript中可能是相同或相似的?有没有办法使用JavaScript获取SSL证书详细信息?
我知道浏览器处理套接字连接,并且SSL握手发生在任何一方发送数据之前。然而,在一个XMLHTTPRequest中,我想知道它是否有可能获得这些细节作为某种响应代码等?
这个信息根本不会暴露给javascript,它很少被使用(因为它不可用,所以它永远不会被使用,但它很少被使用),它被认为不足以添加到javascript对象模型我想......对于任何非常少用的功能都是一样的。
当然,出于安全考虑,它也可能被排除在外......我现在没有足够的创造力去推出一款,但我相信这里也有一个漏洞利用。
没有安全原因,证书是公共值 – 2010-04-09 01:02:10
@GregS-我想不出其中一个......但我以前说过100次,有人会想出一个我将永远不会拥有的漏洞,我认为不同的思维模式......所以我只是在那里抛出这个选项。主持问题的JavaScript ......你不会是那个已经有了证书的人吗?这就是让我认为可能会有更多的恶意使用*不知何故*因为我说,但绝对不是我的专业领域,我会留给你和其他专门研究这个领域的人详细说明可能的结果 – 2010-04-09 01:17:58
感谢Nick,我想我必须考虑如何以跨平台的方式获取客户端的SSL细节,同取出JS或安装备用二进制文件(如openssl,curl/wget)。 – shaond 2010-04-09 01:34:45
不,不可能。
可以通过javascript检测当前浏览的页面是否通过SSL连接(document.location.protocol ==“https:”),但这就是它。
证书不是DOM的一部分,所以不会,这是不可能的。抱歉!
当前JS语言标准不公开证书信息;除此之外它可能取决于你如何使用JavaScript,如果你期望最终用户的浏览器公开证书信息,那么它会有问题,因为你需要获得最低的FF,Chrome,Safari,IE ,边缘......揭露它。
但是,正如Information Security post所述,这对于这些浏览器来说并不是一个理想的选择,因为它可以允许网站开发人员编写代码来错误地信任用户端证书。
与JS开发人员必须意识到“用户接受”证书不是“可接受”证书不同必然是网站提供的那个。 HTML页面实际上不应该处理客户端代码的安全问题,而是应该能够依靠安全层来正确执行它的工作。 (我完全可以理解想要检查安全层,但是你在顶层做的任何管理工作只是表面上的或者是对整个生物圈的修改)
因为让我们暂时假设javascript确实提供了一种方法来处理证书,然后当Bob已经信任Mallory,因为他的安全性被破坏时,无法停止以下交换:
办公室工作人员Bob位于Mega Corp.的伟大防火墙的一侧,IT Mallory负责防火墙在本地传送和传出公司流量,Web Host Alice的真棒网站在WWW上。
(注:我并没有解决,你正在运行JS服务器端的话,那么这将取决于你使用的运行您的JS代码什么程序。)
你的回答没有解决这个问题。问题是Javascript是否可以访问已经被浏览器传输层证明的证书中的数据。不幸的是浏览器丢弃它。他的问题中没有任何内容暗示以Javascript实施运输,或绕过运输安全。 -1 – Wil 2017-11-25 14:28:45
@Wil,看看你的意见分散在整个线程中我相信你正在尝试使用JS时,你应该看看一个PHP或ASP解决方案。 JS是客户端,如果你试图检查用户机器上的证书信息,这在游戏中有点晚了。 – 2017-12-08 17:36:14
我不认为这是可能的。 – SLaks 2010-04-09 00:41:42
我一直在寻找一个Javascript API来测试跨站点请求的证明凭据,以提高站点安全性。令人遗憾的是,浏览器丢弃了这些信息,然后迫使脚本盲目地相信第三方内容现在是可信的,因为它过去是可信的。这是一种令人伤心的事态。 :-( – Wil 2017-11-25 14:15:12
)有些人在响应头文件中添加了证书详细信息,在这种设置中,你可以做出一个xhr请求并读取req.getAllResponseHeaders() – Spikolynn 2017-12-02 10:49:15