情况:网站,同时支持HTTP和HTTPS。 HSTS已启用。 由Apache 2.2提供支持。
之后,网站所有者决定只在特定页面上使用HTTPS(注册,订单等)。 但是,.htaccessredirect失败,因为许多站点访问者的浏览器已经收到了HSTS头,并且不会显示HTTP(导致redirect循环或到处使用HTTPS)。
是否有可能以编程方式禁用HSTSredirect? 唯一的工作方法,清理所有与浏览器相关的网站数据,是远远不够完美的。
尝试发送头像
Strict-Transport-Security: max-age=1;
并在设置的时间间隔(1秒)后强制redirect到HTTP,但看起来并不是所有浏览器都可以被欺骗(redirect循环仍然发生)。
是唯一的解决scheme – 要求用户手动删除提到的网站数据?
根据https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-11#section-6.1.1
“注意:最大年龄值为零(即”max-age = 0“)表示UA关于作为已知HSTS主机的主机停止。
所以设置Strict-Transport-Security: max-age=0;
不,这是不可能的,甚至不可能,HSTS是如何工作的。 为什么所有者希望禁用https对普通页面的支持? 你应该向所有者解释,在任何地方使用https都是最好的。