检查未知/远程服务器是否支持HTTPS

是否可以检查远程服务器是否支持https?
当前正在请求https,如果它不起作用,请重试http,然后如果仍然不起作用,则显示错误。
HTTP中是否嵌入了一项功能,以指示是否支持https? 我的意思不是重定向等,因为这些必须在服务器上实现,并且必须始终如此。

yezhunan11 回答:检查未知/远程服务器是否支持HTTPS

安静地回退到HTTP听起来很危险。攻击者(即中间人)可能会通过阻止对HTTPS的请求来强迫您使用不安全的渠道。因此,我一般不会推荐这种方法。

通常,您应该让用户决定要使用哪种协议。如果它们指定https,则不应默默降级,而应抛出错误。但是,如果他们指定http,则可能也可以先尝试https,如果失败则默默地退回到http(因为他们首先请求了http)。

对您的请求的一般回答:您只能尝试https检查服务器是否支持https。有一个名为HTTP Strict Transport Security (HSTS)的HTTP扩展名,该扩展名允许服务器指示对它们的所有请求应始终仅通过安全通道执行。如果您在HTTPS请求的响应中收到这样的标头,则可以在以后为主机强制使用https。请注意,尽管您必须忽略此类标头是通过不安全的HTTP接收的。

通常,您不能信任通过纯文本HTTP收到的任何信息来向您提供有关服务器安全选项(例如,对TLS的支持)的任何指示,因为该信息可能会被人为篡改。中级攻击者。实际上,防止此类无法检测到的更改是首先使用TLS / HTTPS的主要原因之一。

本文链接:https://www.f2er.com/3160523.html

大家都在问