You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Tomcat的HTML响应中高效提取CSRF Nonce和JSESSIONID?

提取Tomcat响应中的JSESSIONID和CSRF Nonce的高效方法

方法一:正则表达式(最快最直接)

针对你提供的响应片段,这两个参数的格式非常固定,用正则匹配是最简单高效的方式——不需要处理整个HTML结构,直接定位关键字提取值即可:

  • 提取JSESSIONID的正则:jsessionid=([0-9A-F]+)
  • 提取CSRF Nonce的正则:org.apache.catalina.filters.CSRF_NONCE=([0-9A-F]+)

用Python举个简单实现例子:

import re

response_html = '<td class="row-right"><a href="/manager/status;jsessionid=34204725C78AB44888F4C107BFF0D782?org.apache.catalina.filters.CSRF_NONCE=FB57DCEE21FCFEA380C05F34759E666D">Server Status</a></td>'

# 提取JSESSIONID
jsessionid_match = re.search(r'jsessionid=([0-9A-F]+)', response_html)
jsessionid = jsessionid_match.group(1) if jsessionid_match else None

# 提取CSRF Nonce
nonce_match = re.search(r'org.apache.catalina.filters.CSRF_NONCE=([0-9A-F]+)', response_html)
csrf_nonce = nonce_match.group(1) if nonce_match else None

print(f"JSESSIONID: {jsessionid}")
print(f"CSRF Nonce: {csrf_nonce}")

方法二:HTML解析库(更健壮)

如果担心后续Tomcat页面结构变化导致正则失效,可以用HTML解析库(比如Python的BeautifulSoup)来定位元素后提取参数,稳定性更强:

  1. 解析整个HTML响应,找到包含目标链接的<a>标签(比如文本为"Server Status"的标签)
  2. 提取该标签的href属性值
  3. 拆分href里的路径和参数,分别取出JSESSIONID和Nonce

Python示例代码:

from bs4 import BeautifulSoup
from urllib.parse import urlparse, parse_qs

response_html = '<td class="row-right"><a href="/manager/status;jsessionid=34204725C78AB44888F4C107BFF0D782?org.apache.catalina.filters.CSRF_NONCE=FB57DCEE21FCFEA380C05F34759E666D">Server Status</a></td>'

soup = BeautifulSoup(response_html, 'html.parser')
# 定位目标链接
status_link = soup.find('a', string='Server Status')
if status_link:
    href = status_link['href']
    # 拆分JSESSIONID
    jsessionid = href.split(';')[1].split('=')[1]
    # 拆分查询参数中的Nonce
    parsed_url = urlparse(href)
    query_params = parse_qs(parsed_url.query)
    csrf_nonce = query_params.get('org.apache.catalina.filters.CSRF_NONCE', [None])[0]
    
    print(f"JSESSIONID: {jsessionid}")
    print(f"CSRF Nonce: {csrf_nonce}")

两种方法各有侧重:正则适合当前固定格式的场景,编写速度快;HTML解析库适合长期维护,能应对页面结构的小变动。

内容的提问来源于stack exchange,提问作者GARcher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:57:29