防火墙导致的Tomcat closeSocket bug

1.记一次bug处理
复现: 使用post请求保存数据时,一个属性的值有时可以保存,有时不可以保存
不可以保存的时候,无任何返回显示无法返回体是空白的,和访问了不存在的地址一样(Could not get any response)
位置: 本地无问题,linux服务器有问题
日志:服务器无日志记录,tomcat记录日志如下

#无返回请求tomcat日志
2021-05-19 16:30:07.469 DEBUG 25244 --- [o-8855-Acceptor] o.apache.tomcat.util.threads.LimitLatch  : Counting up[http-nio-8855-Acceptor] latch=1
2021-05-19 16:30:07.766 DEBUG 25244 --- [io-8855-exec-10] o.a.tomcat.util.net.SocketWrapperBase    : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@77eafacc:org.apache.tomcat.util.net.NioChannel@1a3d7967:java.nio.channels.SocketChannel[connected local=/200.200.4.18:8855 remote=/10.4.248.86:57465]], Read from buffer: [0]
2021-05-19 16:30:07.768 DEBUG 25244 --- [io-8855-exec-10] o.apache.tomcat.util.threads.LimitLatch  : Counting down[http-nio-8855-exec-10] latch=1
2021-05-19 16:30:07.768 DEBUG 25244 --- [io-8855-exec-10] org.apache.tomcat.util.net.NioEndpoint   : Calling [org.apache.tomcat.util.net.NioEndpoint@73afb693].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@77eafacc:org.apache.tomcat.util.net.NioChannel@1a3d7967:java.nio.channels.SocketChannel[connected local=/200.200.4.18:8855 remote=/10.4.248.86:57465]])

#正常请求tomcat日志
2021-05-19 16:37:59.816 DEBUG 11548 --- [nio-8855-exec-6] o.a.tomcat.util.net.SocketWrapperBase    : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@142947d2:org.apache.tomcat.util.net.NioChannel@43cc98b2:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8855 remote=/127.0.0.1:58023]], Read from buffer: [0]
2021-05-19 16:37:59.821 DEBUG 11548 --- [nio-8855-exec-6] org.apache.tomcat.util.net.NioEndpoint   : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@142947d2:org.apache.tomcat.util.net.NioChannel@43cc98b2:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8855 remote=/127.0.0.1:58023]], Read direct from socket: [1468]
2021-05-19 16:37:59.825 DEBUG 11548 --- [nio-8855-exec-6] o.a.c.authenticator.AuthenticatorBase    : Security checking request POST /api_config/edit
2021-05-19 16:37:59.825 DEBUG 11548 --- [nio-8855-exec-6] org.apache.catalina.realm.RealmBase      :   No applicable constraints defined
2021-05-19 16:37:59.825 DEBUG 11548 --- [nio-8855-exec-6] o.a.c.authenticator.AuthenticatorBase    : Not subject to any constraint
2021-05-19 16:37:59.907 DEBUG 11548 --- [nio-8855-exec-6] o.a.tomcat.util.net.SocketWrapperBase    : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@142947d2:org.apache.tomcat.util.net.NioChannel@43cc98b2:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8855 remote=/127.0.0.1:58023]], Read from buffer: [0]
2021-05-19 16:37:59.907 DEBUG 11548 --- [nio-8855-exec-6] org.apache.tomcat.util.net.NioEndpoint   : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@142947d2:org.apache.tomcat.util.net.NioChannel@43cc98b2:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8855 remote=/127.0.0.1:58023]], Read direct from socket: [0]
2021-05-19 16:37:59.907 DEBUG 11548 --- [nio-8855-exec-6] org.apache.tomcat.util.net.NioEndpoint   : Registered read interest for [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@142947d2:org.apache.tomcat.util.net.NioChannel@43cc98b2:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8855 remote=/127.0.0.1:58023]]

排查步骤

1.jar包问题?
重新打包到服务器执行(复现成功)
将服务器的jar包拷下来使用服务器执行命令启动(复现失败)
---排除jar包差异导致的问题

2.排查代码层面
查看代码中是否有什么拦截,经排查无异常拦截,通过在登录拦截器中打印日志发现未进入登录拦截器
---说明代码层面无问题

3.排查服务器层面
curl请求服务器发现请求并未直接进入服务器,而是进入了另一台服务器,联系运维处理,监听请求发现请求被拦截了,是因为AC/AF拦截了
,由于请求包含sql被防火墙认定sql注入入侵

解决: 这里运维不建议放开拦截 , 故通过对字段AES加密解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值