手机qq坦白说怎么关掉HSTS

你访问的网站是如何自动切换到 HTTPS 的?
什么是 HSTS
它的全称是 - HTTP Strict Transport Security。听起来挺高大上把,其实它特别简单,也已经被主流的浏览器广泛采用。先说说它能干什么吧, 简单来说支持 HSTS 的服务端,可以强制访问它的浏览器使用 HTTPS 协议。 这样就可以最大限度的减少 HTTP 协议的各种安全问题了。
HSTS 的实现也很简单,通过 HTTPS 协议访问你站点的时候,在相应头中加上这样一段信息:
Strict-Transport-Security "max-age=; includeS"
Strict-Transport-Security 是 Header 字段名, 后面的 max-age 代表 HSTS 在客户端的生效时间。 includeSubdomains 表示对所有子域名生效。
举个例子, 我们在 Chrome 浏览器中访问 Facebook 的主页 , 然后打开开发者工具,可以看到服务端发送这样的相应:
这里面的 Strict-Transport-Security 头就是 HSTS 的信息了。 其实在服务端上,只需要发送这个头就可以了。具体的实现都在客户端上,也就是你的浏览器。 当浏览器检测到这样的 Header 信息后,就会做一个记录,根据 max-age 的提示,在一定时间内用户再次访问这个站点的时候就直接使用 HTTPS 协议请求,如果 HTTPS 请求失败,也不会降级到 HTTP 而是直接失败。
这样有什么好处
其实大家平时在使用浏览器的时候,一般是直接在地址栏里面输入域名,然后就访问了。 但大家应该知道,大多数浏览器在默认情况下会先用 HTTP 发起请求的。也就是说即便你的站点已经支持了 HTTPS,但如果不做任何处理的话,用户还是很难触及到。
而为什么我们平时访问很多网站的时候自动就跳转到 HTTPS 站点了呢,也是因为这些站点对这一点做了处理。 最原始的方法就是 302 跳转,服务端把所有的 HTTP 流量跳转到 HTTPS 上。 但这样做有一个明显的安全漏洞, 就是第一次访问站点的时候如果是 HTTP 就有可能被中间人劫持,很可能都没到 302 跳转的时候就被劫持了。
这也就是为什么要引入 HSTS 机制的原因了。 用户的浏览器一旦得到了 HSTS 的信息,下次再访问站点的时候客户端浏览器就会强制使用 HTTPS。 无论你在地址栏里输入什么,都会以 HTTPS 访问。 这样就避免了每次服务端跳转可能导致的潜在安全问题。
这样就解释了为什么我们使用主流浏览器输入网站域名的时候,都会自动跳转到 HTTPS 了。 因为我们访问的大多是主流的大网站,所以用户的感觉就是 HTTPS 自动发生了。但实际上并不是这样的。
HSTS 本身也有缺陷,假如用户的浏览器从未访问过这个站点,那也就不会得到 HSTS 响应头, 这个时候依然会有被劫持风险, 但相比每次都进行服务端跳转的机制,已经好了不少。
针对 HSTS 的这个缺陷,主流的浏览器也提供了一些解决方案,比如把一些大流量并且已知支持 HSTS 的站点预先内置到浏览器中,这样就更大程度的完善了 HTTPS 的安全机制。
HTTPS 可以帮助用户保护自己的信息传输安全,但这一切的达成还需要客户端于服务端的共同配合。合理使用 HSTS 可以让你的 HTTPS 站点触及更多的用户,当然 HSTS 也有它自身的缺陷,并且还有一点要注意的,就是如果你的站点的 HTTPS 服务没有完全准备好,不要轻易的开启 HSTS 响应头。因为一旦浏览器得到这个响应头,就会在规定的 max-age 的时间段内强制使用 HTTPS 访问,如果你的服务没准备好,用户就会一直访问失败,并且不能降级。
关于 HSTS 的文档可以查看 RFC 的定义
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点请完成以下验证码
查看: 17282|回复: 6
Chrome的HSTS设置问题
本帖最后由 穿越星空 于
20:34 编辑
在chrome://net-internals/#hsts中添加域名,可强制Chrome以HTTPS方式访问域名所对应的网站,设置图如下:
122c6b9cbc1f4d.jpg (37.99 KB, 下载次数: 5)
23:48 上传
请教两个问题:
①下面两个复选框勾选是起什么作用的?
②可有办法查询所有添加的域名吗?
https anywhere 装个全自动的扩展多好
_一方通行、
https anywhere 装个全自动的扩展多好
google就跳转&&了&&不能自定义ncr了
google就跳转https://encrypted.google.com&&了&&不能自定义ncr了
google所有的域名都有https加密版 我这里google的每个搜索域名都可以正常使用 没出现跳转 的情况
https anywhere 装个全自动的扩展多好
浏览器自己能实现,就不依赖扩展了,毕竟扩展是可以截获所有数据的。
_一方通行、
google所有的域名都有https加密版 我这里google的每个搜索域名都可以正常使用 没出现跳转https:// ...
你装了https everywhere试试看打开谷歌是不是自己跳转了
你装了https everywhere试试看打开谷歌是不是自己跳转了
我这里没跳
Copyright & KaFan &KaFan.cn All Rights Reserved.
Powered by Discuz! X3.4( 苏ICP备号 ) GMT+8,qingfeng2556的博客
如何配置使用 HTTP 严格传输安全(HSTS)
如何配置使用 HTTP 严格传输安全(HSTS)
HTTP 严格传输安全(HSTS)是一种安全功能,web 服务器通过它来告诉浏览器仅用 HTTPS 来与之通讯,而不是使用 HTTP。本文会说明如何在 Apache2、Nginx 和 Lighttpd 上如何启用 HSTS。在主流的 web 服务器上测试通过: Nginx 1.1.19、 Lighttpd 1.4.28 和 Apache 2.2.22 ,环境为 Ubuntu 12.04、 Debian 6 & 7 和 CentOS 6,只需要调整部分参数就可以工作在其它的发行版上。
什么是 HTTP 严格传输安全?
如果一个 web 服务器支持 HTTP 访问,并将其重定向到 HTTPS 访问的话,那么访问者在重定向前的初始会话是非加密的。举个例子,比如访问者输入 http://www.foo.com/ 或直接输入 foo.com 时。
这就给了中间人攻击的一个机会,重定向可能会被破坏,从而定向到一个恶意站点而不是应该访问的加密页面。
HTTP 严格传输安全(HSTS)功能使 Web 服务器告知浏览器绝不使用 HTTP 访问,在浏览器端自动将所有到该站点的 HTTP 访问替换为 HTTPS 访问。
以下引自:
HSTS 可以用来抵御 SSL 剥离攻击。SSL 剥离攻击是中间人攻击的一种,由 Moxie Marlinspike 于2009年发明。他在当年的黑帽大会上发表的题为 “New Tricks For Defeating SSL In Practice” 的演讲中将这种攻击方式公开。SSL剥离的实施方法是阻止浏览器与服务器创建HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http://,达到阻止HTTPS的目的。
HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,用户将不再允许忽略警告。
场景举例:
当你通过一个无线路由器的免费 WiFi 访问你的网银时,很不幸的,这个免费 WiFi 也许就是由黑客的笔记本所提供的,他们会劫持你的原始请求,并将其重定向到克隆的网银站点,然后,你的所有的隐私数据都曝光在黑客眼下。
严格传输安全可以解决这个问题。如果你之前使用 HTTPS 访问过你的网银,而且网银的站点支持 HSTS,那么你的浏览器就知道应该只使用 HTTPS,无论你是否输入了 HTTPS。这样就防范了中间人劫持攻击。
注意,如果你之前没有使用 HTTPS 访问过该站点,那么 HSTS 是不奏效的。网站需要通过 HTTPS 协议告诉你的浏览器它支持 HSTS。
服务器开启 HSTS 的方法是,当客户端通过HTTPS发出请求时,在服务器返回的 HTTP 响应头中包含 Strict-Transport-Security 字段。非加密传输时设置的HSTS字段无效。
在 Apache2 中设置 HSTS
编辑你的 apache 配置文件(如 /etc/apache2/sites-enabled/website.conf 和 /etc/apache2/httpd.conf
),并加以下行到你的 HTTPS VirtualHost:
# Optionally load the headers module:LoadModule headers_module modules/mod_headers.so&VirtualHost 67.89.123.45:443&
Header always set Strict-Transport-Security "max-age=; includeS preload"&/VirtualHost&
现在你的 web 站点在每次访问时都会发送该请求头,失效时间是两年(秒数)。这个失效时间每次都会设置为两年后,所以,明天你访问时,它会设置为明天的两年后。
你只能在 HTTPS 虚拟机中设置这个头,而不能设置在 HTTP 虚拟机中。
要将你的访问者重定向到对应 HTTPS 站点,可使用如下设置:
ServerName example.com
Redirect permanent / https://example.com/
如果仅仅是做重定向的话,甚至不需要设置 DocumentRoot。
你也可以使用 mod_rewrite 来做重定向,但是上述的方式更简单更安全。不过,mod_rewrite 可以重定向页面到对应的 HTTPS 页面,而上述配置则只重定向到“/”:
mod_rewrite.c
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
不要忘记重启 Apache。
对于 lighttpd 来说很简单,将下述配置增加到你的 Lighttpd 配置文件(例如:/etc/lighttpd/lighttpd.conf):
server.modules += ( "mod_setenv" )$HTTP["scheme"] == "https" {
setenv.add-response-header
= ( "Strict-Transport-Security" =& "max-age=; includeS preload")}
重启 Lighttpd。失效时间也是两年。
Nginx 甚至更简单,将下述行添加到你的 HTTPS 配置的 server 块中:
add_header Strict-Transport-Security "max-age=; includeS preload";
不要忘记重启 Nginx。
没有更多推荐了,HTTPS 升级指南 - 阮一峰的网络日志
HTTPS 升级指南
上一篇文章我介绍了
,它只有在 HTTPS 环境才会生效。
为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS 协议(学名 TLS 协议),可以参考我以前的文章。
本文介绍如何将一个 HTTP 网站升级到 HTTPS 。
一、获取证书
升级到 HTTPS 协议的第一步,就是要获得一张证书。
证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。
证书有很多类型,首先分为三种认证级别。
域名认证(Domain Validation):最低级别认证,可以确认申请人拥有这个域名。对于这种证书,浏览器会在地址栏显示一把锁。
公司认证(Company Validation):确认域名所有人是哪一家公司,证书里面会包含公司信息。
扩展认证(Extended Validation):最高级别的认证,浏览器地址栏会显示公司名。
还分为三种覆盖范围。
单域名证书:只能用于单一域名,foo.com的证书不能用于www.foo.com
通配符证书:可以用于某个域名及其所有一级子域名,比如*.foo.com的证书可以用于foo.com,也可以用于www.foo.com
多域名证书:可以用于多个域名,比如foo.com和bar.com
认证级别越高、覆盖范围越广的证书,价格越贵。
还有一个免费证书的选择。为了推广HTTPS协议,电子前哨基金会EFF成立了 ,提供免费证书(和)。
拿到证书以后,可以用
检查一下,信息是否正确。
二、安装证书
证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。
,by Mozilla
,by SSLMate
如果使用 Let's Encrypt 证书,请使用自动安装工具 。
安装成功后,使用
检查一下证书是否生效。
三、修改链接
下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。
&script src="http://foo.com/jquery.js">&/script>
上面这行加载命令,有两种改法。
&!-- 改法一 -->
&script src="https://foo.com/jquery.js">&/script>
&!-- 改法二 -->
&script src="//foo.com/jquery.js">&/script>
其中,改法二会根据当前网页的协议,加载相同协议的外部资源,更灵活一些。
另外,如果页面头部用到了rel="canonical",也要改成HTTPS网址。
&link rel="canonical" href="https://foo.com/bar.html" />
四、301重定向
下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。
listen 80;
server_name domain.com www.domain.
return 301 https://domain.com$request_
(.htaccess文件)。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
五、安全措施
以下措施可以进一步保证通信安全。
5.1 HTTP Strict Transport Security (HSTS)
访问网站时,用户很少直接在地址栏输入https://,总是通过点击链接,或者3xx重定向,从HTTP页面进入HTTPS页面。攻击者完全可以在用户发出HTTP请求时,劫持并篡改该请求。
另一种情况是恶意网站使用自签名证书,冒充另一个网站,这时浏览器会给出警告,但是许多用户会忽略警告继续访问。
"HTTP严格传输安全"(简称 HSTS)的作用,就是强制浏览器只能发出HTTPS请求,并阻止用户接受不安全的证书。
它在网站的响应头里面,加入一个强制性声明。以下例子摘自。
Strict-Transport-Security: max-age=; includeSubDomains
上面这段头信息有两个作用。
(1)在接下来的一年(即秒)中,浏览器只要向example.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。用户点击超链接或在地址栏输入http://www.example.com/,浏览器应当自动将http转写成https,然后直接向https://www.example.com/发送请求。
(2)在接下来的一年中,如果example.com服务器发送的证书无效,用户不能忽略浏览器警告,将无法继续访问该网站。
HSTS 很大程度上解决了 SSL 剥离攻击。只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。
该方法的主要不足是,用户首次访问网站发出HTTP请求时,是不受HSTS保护的。
如果想要全面分析网站的安全程度,可以使用 Mozilla 的 。
5.2 Cookie
另一个需要注意的地方是,确保浏览器只在使用 HTTPS 时,才发送Cookie。
网站响应头里面,Set-Cookie字段加上Secure标志即可。
Set-Cookie: LSID=DQAAAK...Eaem_vYg; Secure
六、参考链接
, by Chris Palmer
, by KeyCDN
, by Matt Mansfield
一个多月前,我的个人网站遭受 DDOS 攻击,下线了50多个小时。这篇文章就来谈谈,如何应对这种攻击。
Systemd 作为 Linux 的系统启动器,功能强大。
HTTP/2 协议的主要目的是提高网页性能。
春节前,我看到 Nginx 加入了 HTTP/2 的 server push 功能,就很想试一下。这样如何为FireFox设置HSTS列表_软件应用 -【慧心数码解答站】
这样如何为FireFox设置HSTS列表
编辑: www.huiximc.com 慧心数码解答站 &&&来源:用户发布&&&发布时间:&&&浏览次数:26
求教,这样如何为FireFox设置HSTS列表得了
【讨论交流】
如何为FireFox设置HSTS列表
火狐本身不支持配置HSTS列表,你需要安装扩展:HTTPS Everywhere
软件应用相关
更多相关内容
缅甸小勐拉皇家国际官方网址:www.hj8828.com,欢迎您加入!
[] &&[联系QQ:] &
小勐拉皇家国际ICP备号&}

我要回帖

更多关于 dnf视频怎么关掉 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信