本文主要是介绍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
这篇关于Python 流静态文件过滤、端口过滤、同域过滤(host过滤)、代理拦截的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!