Python 流静态文件过滤、端口过滤、同域过滤(host过滤)、代理拦截

目录

静态文件过滤

需求

代码

端口过滤

需求

代码

同域过滤(host过滤)

需求

代码


静态文件过滤

需求

流量中的url包含大量静态文件请求信息,过滤掉

代码

def __is_static(self, flow: http.HTTPFlow) -> bool:static_ext = ['.js', '.css', '.png', '.jpg', '.jpeg', '.gif', '.ico','.svg', '.woff', '.woff2', '.ttf', '.eot', '.map', '.ico',         '.webp', 'htm', 'html']return any(flow.request.path.endswith(ext) for ext in static_ext)if not self.__is_static(flow):print("处理被过滤后的流")

端口过滤

需求

过滤掉不进行处理的端口url

代码

import redef __check_port(self, flow: http.HTTPFlow) -> bool:ports = [80, '1\\d{4}', '.*']    # .*匹配所有, 1\\d{4}表示以1开头的最多5位的端口port = flow.request.portfor p in ports:if type(p) == type(0) and p == port:return Trueif type(p) == type('') and re.match(p, str(port)):return Truereturn Falseif self.__check_port(flow):print("开始处理流")

同域过滤(host过滤)

需求

过滤掉非同源的url

代码

# 过滤host、子域是否属同域
def __check_host(self, flow: http.HTTPFlow) -> bool:hosts = ['localhost', '.*\\.aaa\\.com', '127.0.0.1']host = flow.request.pretty_hostfor h in hosts:try:pattern = re.compile(h)     # 这两行测试子域是否在同一hostif re.match(pattern, host):return Trueexcept Exception:if host == pattern:return Truereturn False

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探讨Go语言中的HTTP代理模式:看Go如何玩转网络中转站

在互联网的海洋中,HTTP代理服务器像一座灯塔,为我们的网络冲浪提供了指引。而当Go语言遇上HTTP代理,会碰撞出怎样的火花呢?今天,让我们一起探讨Go语言中的HTTP代理模式,看看它如何玩转这个网络中转站&#…

三:C语言-输入与输出

三:输入与输出 一:输出 1.printf(): ​ 将参数文本输出到屏幕上,它名字里的 f 代表 format(格式化),表示可以定制输出文本的格式 ​ printf()不会在行尾自动添加换行符,待运行结…

IDEA(十)2022版本 Services中服务窗口不显示端口号解决

目录 一、问题描述二、问题分析三、解决方案3.1 设置启动参数【生效】3.2 方法二:设置环境变量【不生效】3.3 方法三:删除缓存【不生效】 四、补充:如何手动控制端口显示 一、问题描述 我们在使用 IDEA 的过程中,会发现在 Servic…

Hive之set参数大全-11

设置 Map Join 操作中优化哈希表的工作集大小(working set size) hive.mapjoin.optimized.hashtable.wbsize 是 Apache Hive 中的一个配置属性,用于设置 Map Join 操作中优化哈希表的工作集大小(working set size)。 …

Dockerfile:如何写一个Dockerfile文件?

如何写一个Dockerfile文件? 🚨推荐参考:Dockerfile:如何写一个Dockerfile文件? 现在的项目肯定都离不开docker,只要是流水线部署就会涉及Dockerfile文件,那么如何写一个正确的编写一个Dockerfil…

dpdk网络转发环境的搭建

文章目录 前言ip命令的使用配置dpdk-basicfwd需要的网络结构测试dpdk-basicfwddpdk-basicfwd代码分析附录basicfwd在tcp转发时的失败抓包信息DPDK的相关设置 前言 上手dpdk有两难。其一为环境搭建。被绑定之后的网卡没有IP,我如何给它发送数据呢?当然&a…

[leetcode] 18. 四数之和

文章目录 题目描述解题方法排序 双指针java代码 相似题目 题目描述 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应&a…

二、Kotlin 内置类型

1. 基本类型 1.1 Kotlin 和 Java 的基本类型对比 KotlinJava字节Bytebyte/Byte整型Int & Longint/Integer & long/Long浮点型Float & Doublefloat/Float & double/Double字符Charchar/Chararcter字符串StringString 1.2 定义变量 1.2.1 val 只读变量 &…

qt初入门5:字体设置和元对象系统的练习

空闲时间,参考课本demo,做一下练习。 字体的颜色主要用QPalette类,调色板的作用,控制着窗口部件的颜色和外观,包括背景色、前景色、文本颜色、边框颜色等。 字体的显示样式主要用Font类,用于管理字体。 元…

python三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1…

无限学模式-“重塑科研学习路径:ChatGPT应用实战课,开启高效率、高创新的科研之旅!“

ChatGPT 在论文写作与编程方面也具备强大的能力。无论是进行代码生成、错误调试还是解决编程难题,ChatGPT都能为您提供实用且高质量的建议和指导,提高编程效率和准确性。此外,ChatGPT是一位出色的合作伙伴,可以为您提供论文写作的…

【研0日记】24.01.25

回家倒数第6天 受不了了,不想写了,这群b怎么这么能写 用latex写了个伪代码,有点好玩 \usepackage[ruled,linesnumbered]{algorithm2e} \begin{algorithm}[ht] \caption{Pipeline of Kernel Iteration in K-Net.} \label{alg:alg1} …

2024年软考报名时间及条件,小白必看

不少考生开始准备报名2024年软件水平考试,那么报名软考有没有学历、专业以及工作经验等方面的限制呢?今天就给大家梳理下2024年软考考试,若有变更,也会及时更新内容。 免费送备考资料。联系我 2024年软考考试时间 2024年软考有两次考试&a…

在Java中如何优雅使用正则表达式?

在Java中如何优雅使用正则表达式? 一、正则表达式的基本概念与用途 1.1 正则表达式的简介 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算…

不通过代码绕过浏览器跨域检测(权宜之策)

通过属性找到浏览器可执行程序目录 然后在cmd该目录下输入: msedge.exe --args --disable-web-security --user-data-dirD:\temp上述代码是以edge浏览器为例,找到的可执行文件名为msedge.exe,最后的"D:\temp"为自己新建的一个有效…

深入理解badblocks

文章目录 一、概述二、安装2.1、源码编译安装2.2、命令行安装2.3、安装确认 三、重要参数详解3.1、查询支持的参数3.2、参数说明 四、实例4.1、全面扫描4.2、破坏性写入并修复4.3、非破坏性写入测试 五、实现原理六、注意事项 团队博客: 汽车电子社区 一、概述 badblocks命令是…

代码随想录算法训练营第十六天|104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

104.二叉树的最大深度 思路:这道题最开始的时候,我想的是用前序遍历的思路来做,整个过程有剪枝的过程,弄了半天没写出来,主要是剪枝没写对!最大深度是叶子节点的高度,可以使用后序遍历来做。 cl…

el-table 动态渲染多级表头;一级表头根据数据动态生成,二级表头固定

一、表格需求: 实现一个动态表头,一级表头,根据数据动态生成,二级表头固定,每列的数据不一样,难点在于数据的处理。做这种表头需要两组数据,一组数据是实现表头的,另一组数据是内容…

Web网页生成桌面应用

前言:网页生成桌面指的是将一个网页保存为桌面应用程序的形式,使得用户可以在桌面上直接打开该网页,而不必通过浏览器打开。这种桌面应用程序一般具有独立的窗口、菜单、工具栏等界面元素,能够提供更加方便快捷的使用体验。 实现…

【pytorch】pytorch学习笔记(续1)

p22:1.加减乘除: (1)add(a,b):等同于ab。 (2)sub(a,b):等同于a-b。 (3)mul(a,b):等同于a*b。 (4)div(a,b)&#xff1a…