一键https(WAF)接入问题--重定向次数过多

2022-01-21 12:09:53 浏览数 (2)

一、简介

腾讯云‘一键HTTPS’底层使用就是SaaS WAF,所以这里的排查思路是一致的。SaaS WAF可以理解为一个Nginx服务集群,域名接入SaaS WAF并将DNS解析到WAF CNAME后,将隐藏源站,客户端的访问流量会先经过SaaS WAF,由WAF进行对访问流量进行识别、拦截、正常流量转发回源。

SaaS WAF架构SaaS WAF架构

二、接入

接入一键HTTPS的话,可以用两种方式进行接入,一种是从SSL证书控制台中添加接入,另一种是从WAF控制台中进行接入防护。

(一)SSL证书控制台接入

由于一键https主要是为了快速部署 HTTPS 功能,实现 HTTP 自动跳转到 HTTPS,所以文档主要是介绍接入,不介绍攻击测试、防止解析绕过等操作。详细参考文档:https://cloud.tencent.com/document/product/400/58062。

(二)WAF控制台接入

接入WAF是为了防护web攻击,所以接入文档除了介绍接入配置外,还会详细介绍测试验证、防止流量绕过WAF等配置操作。详细参考文档:https://cloud.tencent.com/document/product/627/40763。

三、重定向次数过多:

(一)转发与重定向相关概念

我们需要先了解下转发和重定向的区别,便于后续理解‘重定向次数过多’的问题:

1、转发过程:

客户端浏览器发送http请求-->web服务器接收此请求-->调用内部的一个方法在容器内部完成请求处理和转发动作-->将目标资源转发给客户端 (目标服务器对客户端来说是不可见的)

客户端请求、web服务器转发响应及配置截图客户端请求、web服务器转发响应及配置截图

2、重定向过程:

客户端浏览器发送http请求-->web服务器接收后发送30x状态码响应及对应新的location地址-->客户端浏览器接受到30x响应码,则自动再发送一个新的http请求,请求URL是新的location地址-->web服务器根据此请求需找资源并响应给客户端。

注:location地址可以是重定向到任意URL,且是浏览器发送了新的请求,在客户端浏览器地址栏显示的也是其重定向的路径,用户是可以观察到地址的变化的。此过程中,浏览器做了至少两次访问请求。

重定向过程中,客户端的请求重定向过程中,客户端的请求
重定向过程中,web服务器返回的信息重定向过程中,web服务器返回的信息
重定向过程中,客户端再次发起请求重定向过程中,客户端再次发起请求

3、转发和重定向的区别

转发(Forward)

重定向(Redirect)

跳转方式

服务器端

客户端

客户端发送请求次数

1次

至少2次

客户端地址栏是否改变

不变

是否共享request域

共享

不共享(request域中的数据丢失),必须使用session传递属性

是否共享response域

共享

不共享

范围

网站内

可以跨站点

Jsp

URL不可带参数

URL可带参数

是否隐藏跳转后的路径

隐藏

不隐藏

(二)问题排查及解决:

1、问题现象:

www.a.com解析到一键https(waf)的cname,访问http://www.a.com和https://www.a.com时,显示‘该网页无法正常运作、重定向次数过多’,如下图:

‘该网页无法正常运作、重定向次数过多’报错时的请求过程‘该网页无法正常运作、重定向次数过多’报错时的请求过程

2、初步分析

重定向次数过多主要是客户端请求的网页跳转陷入死循环;一般来说,重定向请求次数过多的整个请求响应过程如下:

重定向次数过多的请求响应分析图重定向次数过多的请求响应分析图

3、详细排查流程:

排查客户问题过程中,务必尝试复现客户问题,并掌握hosts文件修改,浏览器访问的话,建议是使用无痕模式。

’重定向次数过多‘排查流程’重定向次数过多‘排查流程

4、部分排查思路:

详细流程参考上一小节,这里介绍其中的部分操作:

(1)客户端的请求是否有经过’一键HTTPS’/waf;

(2)’一键HTTPS’/waf上是否有配置【强制HTTPS】或【HTTPS强制跳转】;

’一键https‘控制台配置截图’一键https‘控制台配置截图
WAF控制台配置截图WAF控制台配置截图

(3)核实源站是否也有配置http强制跳转到HTTPS的功能,例如nginx配置、宝塔等建站工具;nginx配置如下图

nginx配置文件截图nginx配置文件截图

如有错误、补充,欢迎指出交流

0 人点赞