攻防演练,作为蓝方,分析nginx日志,统计访问为200的请求路径及其次数

本文主要是介绍攻防演练,作为蓝方,分析nginx日志,统计访问为200的请求路径及其次数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请求结果为状态码 200 的日志条目。这需要调整正则表达式来捕获状态码,并基于此值进行过滤。

以下是更新后的脚本:

import redef parse_log_file(file_path, output_file_path):# 正则表达式,用于匹配日志条目中的请求URL部分和状态码pattern = re.compile(r'\"GET\s(.*?)\sHTTP/\d\.\d\"\s(200)\s')# 字典,用于存储路径计数path_counts = {}with open(file_path, 'r') as file:for line in file:match = pattern.search(line)if match:url = match.group(1)# 分割URL以获取路径部分,限制到最多4个段path_parts = url.split('?')[0].split('/')# 仅考虑最多4个段的路径filtered_path = '/'.join(path_parts[:5])if filtered_path in path_counts:path_counts[filtered_path] += 1else:path_counts[filtered_path] = 1# 将结果写入输出文件with open(output_file_path, 'w') as output_file:for path, count in sorted(path_counts.items(), key=lambda item: item[1], reverse=True):output_file.write(f"{path}: {count}\n")# 日志文件路径
log_file_path = '/mnt/data/nginx_logs.txt'
output_file_path = '/mnt/data/print.txt'# 解析日志文件并写入输出
parse_log_file(log_file_path, output_file_path)

变更内容:

  1. 正则表达式调整:模式现在捕获特定返回 200 状态码的 GET 请求。
  2. 过滤逻辑:脚本检查捕获的状态码为 ‘200’ 后,再处理 URL 以计算路径计数。

确保日志文件 nginx_logs.txt 已上传到 /mnt/data/ 目录中,以便脚本可以找到并处理它。这个脚本将其结果输出到同一目录下的 print.txt 中,提供了以 200 状态码结果的 GET 请求的路径计数排序。

这篇关于攻防演练,作为蓝方,分析nginx日志,统计访问为200的请求路径及其次数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918749

相关文章

随想录 Day 69 并查集 107. 寻找存在的路径

随想录 Day 69 并查集 107. 寻找存在的路径 理论基础 int n = 1005; // n根据题目中节点数量而定,一般比节点数量大一点就好vector<int> father = vector<int> (n, 0); // C++里的一种数组结构// 并查集初始化void init() {for (int i = 0; i < n; ++i) {father[i] = i;}

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

SQL Server中,用Restore DataBase把数据库还原到指定的路径

restore database 数据库名 from disk='备份文件路径' with move '数据库文件名' to '数据库文件放置路径', move '日志文件名' to '日志文件存放置路径' Go 如: restore database EaseWe from disk='H:\EaseWe.bak' with move 'Ease

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

vue3项目将所有访问后端springboot的接口统一管理带跨域

vue3项目将所有访问后端springboot的接口统一管理带跨域 一、前言1.安装Axios2.创建Axios实例3.创建API服务文件4.在组件中使用API服务 二、跨域三、总结 一、前言 在Vue 3项目中,统一管理所有访问后端Spring Boot接口的最佳实践是创建一个专门的API服务层。这可以让你的代码更加模块化、可维护和集中管理。你可以使用Axios库作为HTT

axios全局封装AbortController取消重复请求

为什么? 问题:为什么axios要配置AbortController?防抖节流不行吗? 分析: 防抖节流本质上是用延时器来操作请求的。防抖是判断延时器是否存在,如果存在,清除延时器,重新开启一个延时器,只执行最后一次请求。节流呢,是判断延时器是否存在,如果存在,直接return掉,直到执行完这个延时器。事实上,这些体验感都不算友好,因为对于用户来说,得等一些时间,尤其是首次请求,不是那么流畅

局域网内vue2 配置本地IP地址访问项目

在日常开发中同事可能需要访问你的前端项目,可以通过配置实现通过ip访问 一.首先找到config文件夹目录下的 index.js文件             将此处的host的值修改为0.0.0.0(即 host: 0.0.0.0) // Various Dev Server settings//host: 'localhost' //将localhost进行替换成 0.0.0.0host:

设置Nginx缓存策略

详细信息 Nginx服务器的缓存策略设置方法有两种:add_header或者expires。 1. add_header 1)语法:add_header name value。 2)默认值:none。 3)使用范围:http、server、location。 配置示例如下: add_header cache-control "max-age=86400";#设置缓存时间为1天。add