mitmproxy入门三、直接python脚本运行&常用http处理方式

在mitmproxy入门第一篇中讲到通过类似“mitmdump -q -s main.py”这种命令可以实现脚本工作,其实也可以直接以运行python脚本的方式启动。本文为mintmproxy 版本10、python3.10

一、直接运行python文件启动

主入口参考文件main.py

参考action1.py

参考action2.py

上图蓝色框的是如果要直接在python脚本中运行所需添加的内容格式。

二、常用的操作http请求的示例

直接在上面action1.py里面做下修改,可以方便地进行测试(测试代码[……]

mitmproxy入门二、自定义response响应的生效规则

在mitmproxy代理脚本编写过程中经常遇到一些代码预期之外的结果(明明想要返回我写的内容,结果却直接请求到真实数据并返回了)。我一般都是在入口文件addons里面引入不同的python文件类来以pipline的形式操作请求(比如前面的python脚本文件专门用来处理请求打印,最后一个python脚本专门实现请求的二次加工),之前没有特别关注过每个引入的python文件里面处理request和response的不同情况下的作用结果,今天就抽时间专门测试了几个案例并分享之。

测试文件结构很简单,在每个addons里面用到的类文件里面都处理request、response:

测试[……]

mitmproxy入门一、python3.10下安装及代理请求修改

一、安装mitmproxy

实验环境:python3.10.11

直接pip install mitmproxy进行安装

安装后打开新的cmd窗口直接输入mitmproxy、mitmweb等命令发现提示不是内部或外部命令,需要添加环境变量。

二、添加系统环境变量

1、先找到mitmproxy安装位置,可以用everything搜索所在文件夹

2、在“此电脑”右键“属性”,然后在弹出的关于页面往下翻到打开“高级系统设置”进行系统变量添加,保存后重新打开cmd窗口执行命令即可

三、安装mitmproxy相关证书以便可以代理https[……]

【概要篇】我是怎么实现全球任意地点控制局域网测试设备的http网络请求

嗯,标题起的有点过了~

最近因公司项目需要,搭建了一个代理测试环境,主要目的是用于控制局域网的测试设备(基于安卓板开发的项目APP)的每一个api接口请求在不同后端响应情况下的表现,在这个环境下可以通过一个外网url准实时接收测试设备发起的请求,然后进行相应的控制。其实想要做到这一点也可以手动在抓包软件进行一些操作,但是我司的设备是一个体积比较大的设备,如果这样做就得抓包软件常开断点人来回跑着处理,不够优雅!

因为本篇只是概要介绍,不会贴出相关实现代码,只是给出我真实的环境搭建情况及原理介绍。

一、搭建的准备工作

1、安卓设备安装Postern代理转[……]

python上传图片到php后台

在写一个python小程序时遇到需要上传图片功能,留文易备查阅!

为了安全考虑,所有涉及上传的地方需要做下文件过滤,然后最好存储文件名的时候再强制添加普通文件后缀,防止有人利用编码漏洞等绕过后缀名限制!最安全的做法还是上传到外部存储,比如阿里云的oss,服务器上也不要留临时上传文件。

php代码

可以先用postman测试下

python代码也很简单

[……]

python操作sqlite数据库报错DLL load failed while importing _sqlite3: 找不到指定的模块

pthon3.8通过import sqlite3模块操作sqlite数据库结果出现报错,网上找了很多包括去下载sqlite3.dll及sqlite3.def到指定dll目录都不行,最后使用import apsw这个模块实现了操作sqlite

上面是报错信息,下面改apsw后也实现了同样的目的(注意连接数据库最好用绝对路径)

python操作sqlite的另一个坑

在使用apsw的时候也遇到一些报错,当时忘记具体报错内容了(当然也可能是我安装的python版本太混乱了),最后是直接下载安装apsw模块后放到python脚本所在目录了!如果后面你也遇到明明pi[……]