概述

本文主要介绍配置高防后不能实现会话保持的排查思路。

问题描述

业务配置高防后,域名接入后进行测试,登录后单击任意的菜单,将会退出登录。

问题原因

  1. 没有开启会话保持。
  2. 请求经过高防后,高防默认会在Cookie中加入一串高防防攻击用的字段,增长了网站本身的Cookie长度,如果源站服务处理不妥当会出现问题。
    http_cookie:  aliyungf_tc=AQAAAFvyfRtP/AIATUWYDheCsQtZUPVB; SSID=19mjjcefouv7f8cpbuhp2f9lv2; current_menu=%2F 
    
  3. 判断用户Session的存储有基于源IP的校验。高防/WAF开启会话保持是指开启高防IP的LVS到高防IP的Tengine这一段,对于SLB后端的服务器而言,同一个客户端的请求,SLB看到的客户端IP只有一个,即会话保持的那个Tengine的IP地址。 如果不开启会话保持,则对SLB的后端的服务器而言,同一个请求,看到的会有多个客户端IP(Tengine)。

解决方案

  1. 开启TCP监听的会话保持。
  2. 调整监听为HTTP模式,开启会话保持。
  3. 在 配置高防之前,直接访问源站SLB,且没有开启会话保持,访问是正常的。说明登录会话保持,不是依赖SLB实现的。
  4. 会话保持的实现方式是使用Session的方式实现的,同时Session全部保存在MemCache中。Session的信息存放在客户端的Cookies中,获取时是通过Session的ID获取,取SSID值,而非依据顺序获取。
  5. 开启高防IP的会话保持。

适用于

  • DDoS高防IP