【技术干货连载 一】业务经过WAF HTTP 400问题排查

简介: 教你如何排查和解决业务经过WAF 七层代理HTTP 400问题原因?

一般业务经过WAF访问有400的原因为请求头较多时,与WAF不兼容导致。

建议按照以下方法逐步排查:

1.排查请求头过大

目前WAF头部最大支持16K,可以与用户协调获取相关的payload排查,如果小于16K,可以排除头部过大导致的400。

2.排查key是否异常

排查pyload的字段是否存在特殊符号,用户提供postman截图,没有特殊符号,如 :“.”“_”等。

3.本地复现问题排查

通过WAF之后会携带一些请求头,判断也许是这些请求头加上去之后导致的业务异常。

a.获取请求头

我们测试环境可以看到请求头:因为用户使用postman测试,所以我们不增加acw_tc这个cookie。

b.绑定host带上请求头访问源站

host绑定源站,增加请求头,直接用curl 或者visual-studio rest测试,复现了该问题,确认WAF请求头影响这个结果.


c.删除一些请求头测试

看影响结果的请求头,经过测试 ,发现请求头增加多于14个就会报错,反馈给用户,用户对源站进行调整,换掉了原来的IP,再测试结果OK

根据以上方法确认,基本上可以确认问题原因。

目录
相关文章
|
4天前
|
Go
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
|
4天前
|
前端开发 API UED
AngularJS的$http服务:深入解析与进行HTTP请求的技术实践
【4月更文挑战第28天】AngularJS的$http服务是核心组件,用于发起HTTP请求与服务器通信。$http服务简化了通信过程,通过深入理解和实践,能构建高效、可靠的前端应用。
|
4天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
4天前
|
存储 数据采集 负载均衡
建立HTTP代理IP池的技术和工具支持
建立HTTP代理IP池的技术和工具支持
59 0
|
4天前
|
Go
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
100 0
|
4天前
|
数据采集 数据安全/隐私保护 Python
深度解析Python爬虫中的隧道HTTP技术
深度解析Python爬虫中的隧道HTTP技术
|
4天前
|
存储 缓存 网络协议
淘宝HTTP3/QUIC技术演进与实践
淘宝HTTP3/QUIC技术演进与实践
102 0
淘宝HTTP3/QUIC技术演进与实践
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
异步通信 对于BS(Browser-Server 浏览器)架构,很多情景下server的处理时间较长。 如果浏览器发送请求后,保持跟server的连接,等待server响应,那么一方面会对用户的体验有负面影响; 另一方面,很有可能会由于超时,提示用户服务请求失败。
738 0
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
fuser可用于查询文件、目录、socket端口和文件系统的使用进程 1.查询文件和目录使用者 fuser最基本的用法是查询某个文件或目录被哪个进程使用: # fuser -v .
858 0
|
Web App开发 前端开发 Android开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
使用MAT分析内存泄露 对于大型服务端应用程序来说,有些内存泄露问题很难在测试阶段发现,此时就需要分析JVM Heap Dump文件来找出问题。
748 0