本质是中间人攻击(man-in-the-middle attack)
文档:
https://github.com/alibaba/anyproxy/blob/master/docs/cn/src_doc.md
安装
npm install -g anyproxy
启动
anyproxy
rule.js
module.exports = {
// 模块介绍
summary: 'my customized rule for AnyProxy',
// 发送请求前拦截处理
*beforeSendRequest(requestDetail) { /* ... */ },
// 发送响应前处理
*beforeSendResponse(requestDetail, responseDetail) { /* ... */ },
// 是否处理https请求
*beforeDealHttpsRequest(requestDetail) { /* ... */ },
// 请求出错的事件
*onError(requestDetail, error) { /* ... */ },
// https连接服务器出错
*onConnectError(requestDetail, error) { /* ... */ }
};
demo
// file: sample.js
module.exports = {
summary: 'a rule to hack response',
*beforeSendResponse(requestDetail, responseDetail) {
if (requestDetail.url === 'http://httpbin.org/user-agent') {
const newResponse = responseDetail.response;
newResponse.body += '- AnyProxy Hacked!';
return { response: newResponse };
}
},
};
使用rule规则
anyproxy --rule ./sample.js
测试
curl https://github.com --proxy http://127.0.0.1:8001