mitmproxy 에서 upstream proxy 적용하기
mitmproxy에서 동적 업스트림 프록시를 설정하는 방법과 Proxy Auth 문제를 해결하는 코드를 공유합니다. 이 방법으로 유연한 프록시 설정이 가능합니다.
https://github.com/mitmproxy/mitmproxy/issues/6006#issuecomment-1482367935
일단 mitmProxy에서 동적으로 upstream Proxy 적용하기 위한 설명이다.
업스트림 프록시 모드 자체를 동적으로 처리하는데 있어서 상당히 까다로운 부분이 있었는데, 바로 proxy Auth 부분이다.
헤더 값에 Proxy-Authorization 를 넣어준다고 해도,
실제 Proxy Upstream 연결에는 Proxy-Authorization 값이 제거되서 전송이 된다.
그렇기 때문에, Auth 연결이 안되는데
이때 http_connect_upstream 를 사용하면 upstream 연결 시에 Proxy Auth를 넣을 수가 있다.
근데 가장 큰 문제가.
동적으로 사용하려면, request에서 Proxy Address를 설정하고 http_connect_upstream 에서 Proxy Auth를 설정해야한다는건데.
이게 request 에서 동적 프록시를 선택하고나면, 에서 어떤 프록시를 사용했는지를 알 수가 없는 문제가 있다.