mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-25 18:03:50 +00:00
Merge pull request #4350 from mhils/master
Update Changelog, Readme, and Contributing Guidelines
This commit is contained in:
commit
ab8f685cec
6
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
6
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Support
|
||||||
|
url: https://stackoverflow.com/questions/tagged/mitmproxy
|
||||||
|
about: Please do not use GitHub for support requests.
|
||||||
|
If you have questions on how to use mitmproxy, please ask them on StackOverflow!
|
13
.github/ISSUE_TEMPLATE/feature_request.md
vendored
13
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
name: Feature request
|
name: Proposal
|
||||||
about: Suggest an idea for this project
|
about: Suggest an idea for this project
|
||||||
title: ''
|
title: ''
|
||||||
labels: kind/feature
|
labels: kind/feature
|
||||||
@ -7,14 +7,15 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### Is your feature request related to a problem? Please describe.
|
#### Problem Description
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
#### Describe the solution you'd like
|
A clear and concise description of the problem you are trying to solve.
|
||||||
|
|
||||||
|
#### Proposal
|
||||||
A clear and concise description of what you want to happen.
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
#### Describe alternatives you've considered
|
#### Alternatives
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
#### Additional context
|
#### Additional context
|
||||||
Add any other context or screenshots about the feature request here.
|
Add any other context or screenshots about the proposal here.
|
||||||
|
@ -1,14 +1,46 @@
|
|||||||
Release History
|
# Release History
|
||||||
###############
|
|
||||||
|
|
||||||
Unreleased: mitmproxy next
|
## Unreleased: mitmproxy next
|
||||||
==========================
|
|
||||||
|
### New Proxy Core (@mhils)
|
||||||
|
|
||||||
|
Mitmproxy has a completely new proxy core, fixing many longstanding issues:
|
||||||
|
|
||||||
|
* **Secure Web Proxy:** Mitmproxy now supports TLS-over-TLS to already encrypt the connection to the proxy.
|
||||||
|
* **Server-Side Greetings:** Mitmproxy now supports proxying raw TCP connections, including ones that start
|
||||||
|
with a server-side greeting (e.g. SMTP).
|
||||||
|
* **HTTP/1 – HTTP/2 Interoperability:** mitmproxy can now accept an HTTP/2 connection from the client,
|
||||||
|
and forward it to an HTTP/1 server.
|
||||||
|
* **HTTP/2 Redirects:** The request destination can now be changed on HTTP/2 flows.
|
||||||
|
* **Connection Strategy:** Users can now specify if they want mitmproxy to eagerly connect upstream
|
||||||
|
or wait as long as possible. Eager connections are required to detect protocols with server-side
|
||||||
|
greetings, lazy connections enable the replay of responses without connecting to an upstream server.
|
||||||
|
* **Timeout Handling:** Mitmproxy will now clean up idle connections and also abort requests if the client disconnects
|
||||||
|
in the meantime.
|
||||||
|
* **Host Header-based Proxying:** If the request destination is unknown, mitmproxy now falls back to proxying
|
||||||
|
based on the Host header. This means that requests can often be redirected to mitmproxy using
|
||||||
|
DNS spoofing only.
|
||||||
|
* **Internals:** All protocol logic is now separated from I/O (["sans-io"](https://sans-io.readthedocs.io/)).
|
||||||
|
This greatly improves testing capabilities, prevents a wide array of race conditions, and increases
|
||||||
|
proper isolation between layers.
|
||||||
|
|
||||||
|
We wanted to bring these improvements out, so we have a few temporary regressions:
|
||||||
|
|
||||||
|
* HTTP trailers were added in mitmproxy 5.2, but have not made it into the new core yet.
|
||||||
|
* Support for HTTP/2 Push Promises has been dropped.
|
||||||
|
* Message Injection for WebSocket and TCP connections is not implemented yet.
|
||||||
|
* SOCKS/5 Proxy Mode is not implemented yet.
|
||||||
|
|
||||||
|
If you depend on these features, please raise your voice in
|
||||||
|
[#4348](https://github.com/mitmproxy/mitmproxy/issues/4348)!
|
||||||
|
|
||||||
|
|
||||||
|
### Full Changelog
|
||||||
|
|
||||||
* --- TODO: add new PRs above this line ---
|
* --- TODO: add new PRs above this line ---
|
||||||
* ... and various other fixes, documentation improvements, dependency version bumps, etc.
|
* ... and various other fixes, documentation improvements, dependency version bumps, etc.
|
||||||
|
|
||||||
13 December 2020: mitmproxy 6.0
|
## 13 December 2020: mitmproxy 6.0
|
||||||
===============================
|
|
||||||
|
|
||||||
* Mitmproxy now requires Python 3.8 or above.
|
* Mitmproxy now requires Python 3.8 or above.
|
||||||
* Deprecation of pathod and pathoc tools and modules. Future releases will not contain them! (@Kriechi)
|
* Deprecation of pathod and pathoc tools and modules. Future releases will not contain them! (@Kriechi)
|
||||||
@ -26,11 +58,9 @@ Unreleased: mitmproxy next
|
|||||||
* Host headers with non-standard ports are now properly updated in reverse proxy mode. (@mhils)
|
* Host headers with non-standard ports are now properly updated in reverse proxy mode. (@mhils)
|
||||||
* Fix missing host header when replaying HTTP/2 flows (@Granitosaurus)
|
* Fix missing host header when replaying HTTP/2 flows (@Granitosaurus)
|
||||||
|
|
||||||
01 November 2020: mitmproxy 5.3
|
## 01 November 2020: mitmproxy 5.3
|
||||||
===============================
|
|
||||||
|
|
||||||
Full Changelog
|
### Full Changelog
|
||||||
--------------
|
|
||||||
|
|
||||||
* Support for Python 3.9 (@mhils)
|
* Support for Python 3.9 (@mhils)
|
||||||
* Add MsgPack content viewer (@tasn)
|
* Add MsgPack content viewer (@tasn)
|
||||||
@ -53,8 +83,7 @@ Full Changelog
|
|||||||
* Fix OpenSSL requiring different CN for root and leaf certificates (@mhils)
|
* Fix OpenSSL requiring different CN for root and leaf certificates (@mhils)
|
||||||
* ... and various other fixes, documentation improvements, dependency version bumps, etc.
|
* ... and various other fixes, documentation improvements, dependency version bumps, etc.
|
||||||
|
|
||||||
18 July 2020: mitmproxy 5.2
|
## 18 July 2020: mitmproxy 5.2
|
||||||
===========================
|
|
||||||
|
|
||||||
* Add Filter message to mitmdump (@sarthak212)
|
* Add Filter message to mitmdump (@sarthak212)
|
||||||
* Display TCP flows at flow list (@Jessonsotoventura, @nikitastupin, @mhils)
|
* Display TCP flows at flow list (@Jessonsotoventura, @nikitastupin, @mhils)
|
||||||
@ -84,21 +113,17 @@ Full Changelog
|
|||||||
* Fix console output formatting (@sarthak212)
|
* Fix console output formatting (@sarthak212)
|
||||||
* Add example for proxy authentication using selenium (@anneborcherding and @weichweich)
|
* Add example for proxy authentication using selenium (@anneborcherding and @weichweich)
|
||||||
|
|
||||||
13 April 2020: mitmproxy 5.1.1
|
## 13 April 2020: mitmproxy 5.1.1
|
||||||
==============================
|
|
||||||
|
|
||||||
* Fixed Docker images not starting due to missing shell
|
* Fixed Docker images not starting due to missing shell
|
||||||
|
|
||||||
13 April 2020: mitmproxy 5.1
|
## 13 April 2020: mitmproxy 5.1
|
||||||
============================
|
|
||||||
|
|
||||||
Major Changes
|
### Major Changes
|
||||||
-------------
|
|
||||||
|
|
||||||
* Initial Support for TLS 1.3
|
* Initial Support for TLS 1.3
|
||||||
|
|
||||||
Full Changelog
|
### Full Changelog
|
||||||
--------------
|
|
||||||
|
|
||||||
* Reduce leaf certificate validity to one year due to upcoming browser changes (@mhils)
|
* Reduce leaf certificate validity to one year due to upcoming browser changes (@mhils)
|
||||||
* Rename mitmweb's `web_iface` option to `web_host` for consistency (@oxr463)
|
* Rename mitmweb's `web_iface` option to `web_host` for consistency (@oxr463)
|
||||||
@ -114,29 +139,24 @@ Full Changelog
|
|||||||
* Fix wrong behavior of --allow-hosts options (@BlownSnail)
|
* Fix wrong behavior of --allow-hosts options (@BlownSnail)
|
||||||
* Additional and updated documentation for examples, WebSockets, Getting Started (@Kriechi)
|
* Additional and updated documentation for examples, WebSockets, Getting Started (@Kriechi)
|
||||||
|
|
||||||
27 December 2019: mitmproxy 5.0.1
|
## 27 December 2019: mitmproxy 5.0.1
|
||||||
=================================
|
|
||||||
|
|
||||||
* Fixed precompiled Linux binaries to not crash in table mode
|
* Fixed precompiled Linux binaries to not crash in table mode
|
||||||
* Display webp images in mitmweb (@cixtor)
|
* Display webp images in mitmweb (@cixtor)
|
||||||
|
|
||||||
16 December 2019: mitmproxy 5.0
|
## 16 December 2019: mitmproxy 5.0
|
||||||
===============================
|
|
||||||
|
|
||||||
Major Changes
|
### Major Changes
|
||||||
-------------
|
|
||||||
|
|
||||||
* Added new Table UI (@Jessonsotoventura)
|
* Added new Table UI (@Jessonsotoventura)
|
||||||
* Added EKU extension to certificates. This fixes support for macOS Catalina (@vin01)
|
* Added EKU extension to certificates. This fixes support for macOS Catalina (@vin01)
|
||||||
|
|
||||||
Security Fixes
|
### Security Fixes
|
||||||
--------------
|
|
||||||
|
|
||||||
* Fixed command injection vulnerabilities when exporting flows as curl/httpie commands (@cript0nauta)
|
* Fixed command injection vulnerabilities when exporting flows as curl/httpie commands (@cript0nauta)
|
||||||
* Do not echo unsanitized user input in HTTP error responses (@fimad)
|
* Do not echo unsanitized user input in HTTP error responses (@fimad)
|
||||||
|
|
||||||
Full Changelog
|
### Full Changelog
|
||||||
--------------
|
|
||||||
|
|
||||||
* Moved to Github CI for Continuous Integration, dropping support for old Linux and macOS releases. (#3728)
|
* Moved to Github CI for Continuous Integration, dropping support for old Linux and macOS releases. (#3728)
|
||||||
* Vastly improved command parsing, in particular for setting flow filters (@typoon)
|
* Vastly improved command parsing, in particular for setting flow filters (@typoon)
|
||||||
@ -170,8 +190,7 @@ Full Changelog
|
|||||||
* Fixed issue with replay timestamps (@rjt-gupta)
|
* Fixed issue with replay timestamps (@rjt-gupta)
|
||||||
* Fixed copying in mitmweb on macOS (@XZzYassin)
|
* Fixed copying in mitmweb on macOS (@XZzYassin)
|
||||||
|
|
||||||
31 July 2018: mitmproxy 4.0.4
|
## 31 July 2018: mitmproxy 4.0.4
|
||||||
=============================
|
|
||||||
|
|
||||||
* Security: Protect mitmweb against DNS rebinding. (CVE-2018-14505, @atx)
|
* Security: Protect mitmweb against DNS rebinding. (CVE-2018-14505, @atx)
|
||||||
* Reduce certificate lifetime to two years to be conformant with
|
* Reduce certificate lifetime to two years to be conformant with
|
||||||
@ -179,8 +198,7 @@ Full Changelog
|
|||||||
(https://cabforum.org/2017/03/17/ballot-193-825-day-certificate-lifetimes/)
|
(https://cabforum.org/2017/03/17/ballot-193-825-day-certificate-lifetimes/)
|
||||||
* Update cryptography to version 2.3.
|
* Update cryptography to version 2.3.
|
||||||
|
|
||||||
15 June 2018: mitmproxy 4.0.3
|
## 15 June 2018: mitmproxy 4.0.3
|
||||||
=============================
|
|
||||||
|
|
||||||
* Add support for IPv6 transparent mode on Windows (#3174)
|
* Add support for IPv6 transparent mode on Windows (#3174)
|
||||||
* Add Docker images for ARMv7 - Raspberry Pi (#3190)
|
* Add Docker images for ARMv7 - Raspberry Pi (#3190)
|
||||||
@ -191,25 +209,20 @@ Full Changelog
|
|||||||
* Fix options update when added (#3157)
|
* Fix options update when added (#3157)
|
||||||
* Fix "Edit Flow" button in mitmweb (#3136)
|
* Fix "Edit Flow" button in mitmweb (#3136)
|
||||||
|
|
||||||
15 June 2018: mitmproxy 4.0.2
|
## 15 June 2018: mitmproxy 4.0.2
|
||||||
=============================
|
|
||||||
|
|
||||||
* Skipped!
|
* Skipped!
|
||||||
|
|
||||||
17 May 2018: mitmproxy 4.0.1
|
## 17 May 2018: mitmproxy 4.0.1
|
||||||
============================
|
|
||||||
|
|
||||||
Bugfixes
|
### Bugfixes
|
||||||
-----------
|
|
||||||
|
|
||||||
* The previous release had a packaging issue, so we bumped it to v4.0.1 and re-released it.
|
* The previous release had a packaging issue, so we bumped it to v4.0.1 and re-released it.
|
||||||
* This contains no actual bugfixes or new features.
|
* This contains no actual bugfixes or new features.
|
||||||
|
|
||||||
17 May 2018: mitmproxy 4.0
|
## 17 May 2018: mitmproxy 4.0
|
||||||
==========================
|
|
||||||
|
|
||||||
Features
|
### Features
|
||||||
--------
|
|
||||||
|
|
||||||
* mitmproxy now requires Python 3.6!
|
* mitmproxy now requires Python 3.6!
|
||||||
* Moved the core to asyncio - which gives us a very significant performance boost!
|
* Moved the core to asyncio - which gives us a very significant performance boost!
|
||||||
@ -217,8 +230,7 @@ Features
|
|||||||
* Export request as httpie command (#3031)
|
* Export request as httpie command (#3031)
|
||||||
* Configure mitmproxy console keybindings with the keys.yaml file. See docs for more.
|
* Configure mitmproxy console keybindings with the keys.yaml file. See docs for more.
|
||||||
|
|
||||||
Breaking Changes
|
### Breaking Changes
|
||||||
----------------
|
|
||||||
|
|
||||||
* The --conf command-line flag is now --confdir, and specifies the mitmproxy configuration
|
* The --conf command-line flag is now --confdir, and specifies the mitmproxy configuration
|
||||||
directory, instead of the options yaml file (which is at `config.yaml` under the configuration directory).
|
directory, instead of the options yaml file (which is at `config.yaml` under the configuration directory).
|
||||||
@ -228,8 +240,7 @@ Breaking Changes
|
|||||||
* We no longer magically capture print statements in addons and translate
|
* We no longer magically capture print statements in addons and translate
|
||||||
them to logs. Please use `ctx.log.info` explicitly.
|
them to logs. Please use `ctx.log.info` explicitly.
|
||||||
|
|
||||||
Bugfixes
|
### Bugfixes
|
||||||
--------
|
|
||||||
|
|
||||||
* Correctly block connections from remote clients with IPv4-mapped IPv6 client addresses (#3099)
|
* Correctly block connections from remote clients with IPv4-mapped IPv6 client addresses (#3099)
|
||||||
* Expand `~` in paths during the `cut` command (#3078)
|
* Expand `~` in paths during the `cut` command (#3078)
|
||||||
@ -242,29 +253,24 @@ Bugfixes
|
|||||||
* Fix traceback when killing intercepted flow (#2879)
|
* Fix traceback when killing intercepted flow (#2879)
|
||||||
* And lots of typos, docs improvements, revamped examples, and general fixes!
|
* And lots of typos, docs improvements, revamped examples, and general fixes!
|
||||||
|
|
||||||
05 April 2018: mitmproxy 3.0.4
|
## 05 April 2018: mitmproxy 3.0.4
|
||||||
==============================
|
|
||||||
|
|
||||||
* Fix an issue that caused mitmproxy to not retry HTTP requests on timeout.
|
* Fix an issue that caused mitmproxy to not retry HTTP requests on timeout.
|
||||||
* Various other fixes (@kira0204, @fenilgandhi, @tran-tien-dat, @smonami,
|
* Various other fixes (@kira0204, @fenilgandhi, @tran-tien-dat, @smonami,
|
||||||
@luzpaz, @fristonio, @kajojify, @Oliver-Fish, @hcbarry, @jplochocki, @MikeShi42,
|
@luzpaz, @fristonio, @kajojify, @Oliver-Fish, @hcbarry, @jplochocki, @MikeShi42,
|
||||||
@ghillu, @emilstahl)
|
@ghillu, @emilstahl)
|
||||||
|
|
||||||
25 February 2018: mitmproxy 3.0.3
|
## 25 February 2018: mitmproxy 3.0.3
|
||||||
=================================
|
|
||||||
|
|
||||||
* Fix an issue that caused mitmproxy to lose keyboard control after spawning an external editor.
|
* Fix an issue that caused mitmproxy to lose keyboard control after spawning an external editor.
|
||||||
|
|
||||||
23 February 2018: mitmproxy 3.0.1
|
## 23 February 2018: mitmproxy 3.0.1
|
||||||
=================================
|
|
||||||
|
|
||||||
* Fix a quote-related issue affecting the mitmproxy console command prompt.
|
* Fix a quote-related issue affecting the mitmproxy console command prompt.
|
||||||
|
|
||||||
22 February 2018: mitmproxy 3.0
|
## 22 February 2018: mitmproxy 3.0
|
||||||
===============================
|
|
||||||
|
|
||||||
Major Changes
|
### Major Changes
|
||||||
-------------
|
|
||||||
|
|
||||||
* Commands: A consistent, typed mechanism that allows addons to expose actions
|
* Commands: A consistent, typed mechanism that allows addons to expose actions
|
||||||
to users.
|
to users.
|
||||||
@ -279,8 +285,7 @@ Major Changes
|
|||||||
Verma, Google Summer of Code 2017)
|
Verma, Google Summer of Code 2017)
|
||||||
* Faster JavaScript and CSS beautifiers. (Ujjwal Verma)
|
* Faster JavaScript and CSS beautifiers. (Ujjwal Verma)
|
||||||
|
|
||||||
Minor Changes
|
### Minor Changes
|
||||||
-------------
|
|
||||||
|
|
||||||
* Vastly improved JavaScript test coverage (Matthew Shao)
|
* Vastly improved JavaScript test coverage (Matthew Shao)
|
||||||
* Options editor for mitmweb (Matthew Shao)
|
* Options editor for mitmweb (Matthew Shao)
|
||||||
@ -363,21 +368,18 @@ Minor Changes
|
|||||||
* Remove Python and Locust export (#2465)
|
* Remove Python and Locust export (#2465)
|
||||||
* Remove emojis from tox.ini because flake8 cannot parse that. :(
|
* Remove emojis from tox.ini because flake8 cannot parse that. :(
|
||||||
|
|
||||||
28 April 2017: mitmproxy 2.0.2
|
## 28 April 2017: mitmproxy 2.0.2
|
||||||
==============================
|
|
||||||
|
|
||||||
* Fix mitmweb's Content-Security-Policy to work with Chrome 58+
|
* Fix mitmweb's Content-Security-Policy to work with Chrome 58+
|
||||||
* HTTP/2: actually use header normalization from hyper-h2
|
* HTTP/2: actually use header normalization from hyper-h2
|
||||||
|
|
||||||
15 March 2017: mitmproxy 2.0.1
|
## 15 March 2017: mitmproxy 2.0.1
|
||||||
==============================
|
|
||||||
|
|
||||||
* bump cryptography dependency
|
* bump cryptography dependency
|
||||||
* bump pyparsing dependency
|
* bump pyparsing dependency
|
||||||
* HTTP/2: use header normalization from hyper-h2
|
* HTTP/2: use header normalization from hyper-h2
|
||||||
|
|
||||||
21 February 2017: mitmproxy 2.0
|
## 21 February 2017: mitmproxy 2.0
|
||||||
===============================
|
|
||||||
|
|
||||||
* HTTP/2 is now enabled by default.
|
* HTTP/2 is now enabled by default.
|
||||||
* Image ContentView: Parse images with Kaitai Struct (kaitai.io) instead of Pillow.
|
* Image ContentView: Parse images with Kaitai Struct (kaitai.io) instead of Pillow.
|
||||||
@ -391,8 +393,7 @@ Minor Changes
|
|||||||
* A myriad of other small improvements throughout the project.
|
* A myriad of other small improvements throughout the project.
|
||||||
* Numerous bugfixes.
|
* Numerous bugfixes.
|
||||||
|
|
||||||
26 December 2016: mitmproxy 1.0
|
## 26 December 2016: mitmproxy 1.0
|
||||||
===============================
|
|
||||||
|
|
||||||
* All mitmproxy tools are now Python 3 only! We plan to support Python 3.5 and higher.
|
* All mitmproxy tools are now Python 3 only! We plan to support Python 3.5 and higher.
|
||||||
* Web-Based User Interface: Mitmproxy now officially has a web-based user interface
|
* Web-Based User Interface: Mitmproxy now officially has a web-based user interface
|
||||||
@ -414,8 +415,7 @@ Minor Changes
|
|||||||
message interception and manipulation are available.
|
message interception and manipulation are available.
|
||||||
* A myriad of other small improvements throughout the project.
|
* A myriad of other small improvements throughout the project.
|
||||||
|
|
||||||
16 October 2016: mitmproxy 0.18
|
## 16 October 2016: mitmproxy 0.18
|
||||||
===============================
|
|
||||||
|
|
||||||
* Python 3 Compatibility for mitmproxy and pathod (Shadab Zafar, GSoC 2016)
|
* Python 3 Compatibility for mitmproxy and pathod (Shadab Zafar, GSoC 2016)
|
||||||
* Major improvements to mitmweb (Clemens Brunner & Jason Hao, GSoC 2016)
|
* Major improvements to mitmweb (Clemens Brunner & Jason Hao, GSoC 2016)
|
||||||
@ -442,8 +442,7 @@ Minor Changes
|
|||||||
* Add dumpfile converters for mitmproxy versions 0.11 and 0.12
|
* Add dumpfile converters for mitmproxy versions 0.11 and 0.12
|
||||||
* Numerous bugfixes
|
* Numerous bugfixes
|
||||||
|
|
||||||
9 April 2016: mitmproxy 0.17
|
## 9 April 2016: mitmproxy 0.17
|
||||||
============================
|
|
||||||
|
|
||||||
* Simplify repository and release structure. mitmproxy now comes as a single package, including netlib and pathod.
|
* Simplify repository and release structure. mitmproxy now comes as a single package, including netlib and pathod.
|
||||||
* Rename the Python package from libmproxy to mitmproxy.
|
* Rename the Python package from libmproxy to mitmproxy.
|
||||||
@ -458,8 +457,7 @@ Minor Changes
|
|||||||
* Numerous bugfixes and minor improvements
|
* Numerous bugfixes and minor improvements
|
||||||
|
|
||||||
|
|
||||||
15 February 2016: mitmproxy 0.16
|
## 15 February 2016: mitmproxy 0.16
|
||||||
================================
|
|
||||||
|
|
||||||
* Completely revised HTTP2 implementation based on hyper-h2 (Thomas Kriechbaumer)
|
* Completely revised HTTP2 implementation based on hyper-h2 (Thomas Kriechbaumer)
|
||||||
* Export flows as cURL command, Python code or raw HTTP (Shadab Zafar)
|
* Export flows as cURL command, Python code or raw HTTP (Shadab Zafar)
|
||||||
@ -472,8 +470,7 @@ Minor Changes
|
|||||||
* Provide Python Wheels for faster installation
|
* Provide Python Wheels for faster installation
|
||||||
* Numerous bugfixes and minor improvements
|
* Numerous bugfixes and minor improvements
|
||||||
|
|
||||||
4 December 2015: mitmproxy 0.15
|
## 4 December 2015: mitmproxy 0.15
|
||||||
===============================
|
|
||||||
|
|
||||||
* Support for loading and converting older dumpfile formats (0.13 and up)
|
* Support for loading and converting older dumpfile formats (0.13 and up)
|
||||||
* Content views for inline script (@chrisczub)
|
* Content views for inline script (@chrisczub)
|
||||||
@ -481,8 +478,7 @@ Minor Changes
|
|||||||
* Fix a gnarly memory leak in mitmdump
|
* Fix a gnarly memory leak in mitmdump
|
||||||
* A number of bugfixes and small improvements
|
* A number of bugfixes and small improvements
|
||||||
|
|
||||||
6 November 2015: mitmproxy 0.14
|
## 6 November 2015: mitmproxy 0.14
|
||||||
===============================
|
|
||||||
|
|
||||||
* Statistics: 399 commits, 13 contributors, 79 closed issues, 37 closed
|
* Statistics: 399 commits, 13 contributors, 79 closed issues, 37 closed
|
||||||
PRs, 103 days
|
PRs, 103 days
|
||||||
@ -514,8 +510,7 @@ Minor Changes
|
|||||||
* netlib: Initial Python 3.5 support (this is the first prerequisite for
|
* netlib: Initial Python 3.5 support (this is the first prerequisite for
|
||||||
3.x support in mitmproxy)
|
3.x support in mitmproxy)
|
||||||
|
|
||||||
24 July 2015: mitmproxy 0.13
|
## 24 July 2015: mitmproxy 0.13
|
||||||
============================
|
|
||||||
|
|
||||||
* Upstream certificate validation. See the --verify-upstream-cert,
|
* Upstream certificate validation. See the --verify-upstream-cert,
|
||||||
--upstream-trusted-confdir and --upstream-trusted-ca parameters. Thanks to
|
--upstream-trusted-confdir and --upstream-trusted-ca parameters. Thanks to
|
||||||
@ -536,8 +531,7 @@ Minor Changes
|
|||||||
#gotofail, which is no longer a common vulnerability. Permitting this
|
#gotofail, which is no longer a common vulnerability. Permitting this
|
||||||
hugely increased the complexity of packaging and distributing mitmproxy.
|
hugely increased the complexity of packaging and distributing mitmproxy.
|
||||||
|
|
||||||
3 June 2015: mitmproxy 0.12.1
|
## 3 June 2015: mitmproxy 0.12.1
|
||||||
=============================
|
|
||||||
|
|
||||||
* mitmproxy console: mouse interaction - scroll in the flow list, click on
|
* mitmproxy console: mouse interaction - scroll in the flow list, click on
|
||||||
flow to view, click to switch between tabs.
|
flow to view, click to switch between tabs.
|
||||||
@ -545,8 +539,7 @@ Minor Changes
|
|||||||
* BUGFIX: crash under some circumstances when copying to clipboard.
|
* BUGFIX: crash under some circumstances when copying to clipboard.
|
||||||
* BUGFIX: occasional crash when deleting flows.
|
* BUGFIX: occasional crash when deleting flows.
|
||||||
|
|
||||||
18 May 2015: mitmproxy 0.12
|
## 18 May 2015: mitmproxy 0.12
|
||||||
===========================
|
|
||||||
|
|
||||||
* mitmproxy console: Significant revamp of the UI. The major changes are
|
* mitmproxy console: Significant revamp of the UI. The major changes are
|
||||||
listed below, and in addition almost every aspect of the UI has
|
listed below, and in addition almost every aspect of the UI has
|
||||||
@ -574,21 +567,18 @@ Minor Changes
|
|||||||
(http://github.com/mike-pt).
|
(http://github.com/mike-pt).
|
||||||
* Many other small bugfixes and improvemenets throughout the project.
|
* Many other small bugfixes and improvemenets throughout the project.
|
||||||
|
|
||||||
29 Dec 2014: mitmproxy 0.11.2
|
## 29 Dec 2014: mitmproxy 0.11.2
|
||||||
=============================
|
|
||||||
|
|
||||||
* Configuration files - mitmproxy.conf, mitmdump.conf, common.conf in the
|
* Configuration files - mitmproxy.conf, mitmdump.conf, common.conf in the
|
||||||
.mitmproxy directory.
|
.mitmproxy directory.
|
||||||
* Better handling of servers that reject connections that are not SNI.
|
* Better handling of servers that reject connections that are not SNI.
|
||||||
* Many other small bugfixes and improvements.
|
* Many other small bugfixes and improvements.
|
||||||
|
|
||||||
15 November 2014: mitmproxy 0.11.1
|
## 15 November 2014: mitmproxy 0.11.1
|
||||||
==================================
|
|
||||||
|
|
||||||
* Bug fixes: connection leaks some crashes
|
* Bug fixes: connection leaks some crashes
|
||||||
|
|
||||||
7 November 2014: mitmproxy 0.11
|
## 7 November 2014: mitmproxy 0.11
|
||||||
===============================
|
|
||||||
|
|
||||||
* Performance improvements for mitmproxy console
|
* Performance improvements for mitmproxy console
|
||||||
* SOCKS5 proxy mode allows mitmproxy to act as a SOCKS5 proxy server
|
* SOCKS5 proxy mode allows mitmproxy to act as a SOCKS5 proxy server
|
||||||
@ -616,8 +606,7 @@ Minor Changes
|
|||||||
* pathod: Hugely improved SSL support, including dynamic generation of certificates
|
* pathod: Hugely improved SSL support, including dynamic generation of certificates
|
||||||
using the mitproxy cacert
|
using the mitproxy cacert
|
||||||
|
|
||||||
7 November 2014: pathod 0.11
|
## 7 November 2014: pathod 0.11
|
||||||
============================
|
|
||||||
|
|
||||||
* Hugely improved SSL support, including dynamic generation of certificates
|
* Hugely improved SSL support, including dynamic generation of certificates
|
||||||
using the mitproxy cacert
|
using the mitproxy cacert
|
||||||
@ -626,8 +615,7 @@ Minor Changes
|
|||||||
* Reflected patterns, allowing you to embed a pathod server response specification in a pathoc request, resolving both on client side. This makes fuzzing proxies and other intermediate systems much better.
|
* Reflected patterns, allowing you to embed a pathod server response specification in a pathoc request, resolving both on client side. This makes fuzzing proxies and other intermediate systems much better.
|
||||||
|
|
||||||
|
|
||||||
28 January 2014: mitmproxy 0.10
|
## 28 January 2014: mitmproxy 0.10
|
||||||
===============================
|
|
||||||
|
|
||||||
* Support for multiple scripts and multiple script arguments
|
* Support for multiple scripts and multiple script arguments
|
||||||
* Easy certificate install through the in-proxy web app, which is now
|
* Easy certificate install through the in-proxy web app, which is now
|
||||||
@ -638,8 +626,7 @@ Minor Changes
|
|||||||
* A view that beatifies CSS files if cssutils is available
|
* A view that beatifies CSS files if cssutils is available
|
||||||
* Bug fix, documentation improvements, and more.
|
* Bug fix, documentation improvements, and more.
|
||||||
|
|
||||||
25 August 2013: mitmproxy 0.9.2
|
## 25 August 2013: mitmproxy 0.9.2
|
||||||
===============================
|
|
||||||
|
|
||||||
* Improvements to the mitmproxywrapper.py helper script for OSX.
|
* Improvements to the mitmproxywrapper.py helper script for OSX.
|
||||||
* Don't take minor version into account when checking for serialized file
|
* Don't take minor version into account when checking for serialized file
|
||||||
@ -654,13 +641,11 @@ Minor Changes
|
|||||||
* Display transfer rates for responses in the flow list.
|
* Display transfer rates for responses in the flow list.
|
||||||
* Many other small bugfixes and improvements.
|
* Many other small bugfixes and improvements.
|
||||||
|
|
||||||
25 August 2013: pathod 0.9.2
|
## 25 August 2013: pathod 0.9.2
|
||||||
============================
|
|
||||||
|
|
||||||
* Adapt to interface changes in netlib
|
* Adapt to interface changes in netlib
|
||||||
|
|
||||||
16 June 2013: mitmproxy 0.9.1
|
## 16 June 2013: mitmproxy 0.9.1
|
||||||
=============================
|
|
||||||
|
|
||||||
* Use "correct" case for Content-Type headers added by mitmproxy.
|
* Use "correct" case for Content-Type headers added by mitmproxy.
|
||||||
* Make UTF environment detection more robust.
|
* Make UTF environment detection more robust.
|
||||||
@ -668,8 +653,7 @@ Minor Changes
|
|||||||
* Always read files in binary mode (Windows compatibility fix).
|
* Always read files in binary mode (Windows compatibility fix).
|
||||||
* Some developer documentation.
|
* Some developer documentation.
|
||||||
|
|
||||||
15 May 2013: mitmproxy 0.9
|
## 15 May 2013: mitmproxy 0.9
|
||||||
==========================
|
|
||||||
|
|
||||||
* Upstream certs mode is now the default.
|
* Upstream certs mode is now the default.
|
||||||
* Add a WSGI container that lets you host in-proxy web applications.
|
* Add a WSGI container that lets you host in-proxy web applications.
|
||||||
@ -703,8 +687,7 @@ Minor Changes
|
|||||||
* pathoc: client certificate support.
|
* pathoc: client certificate support.
|
||||||
* pathod: API improvements, bugfixes.
|
* pathod: API improvements, bugfixes.
|
||||||
|
|
||||||
15 May 2013: pathod 0.9 (version synced with mitmproxy)
|
## 15 May 2013: pathod 0.9 (version synced with mitmproxy)
|
||||||
=======================================================
|
|
||||||
|
|
||||||
* Pathod proxy mode. You can now configure clients to use pathod as an
|
* Pathod proxy mode. You can now configure clients to use pathod as an
|
||||||
HTTP/S proxy.
|
HTTP/S proxy.
|
||||||
@ -714,8 +697,7 @@ Minor Changes
|
|||||||
* API improvements, bugfixes.
|
* API improvements, bugfixes.
|
||||||
|
|
||||||
|
|
||||||
16 November 2012: pathod 0.3
|
## 16 November 2012: pathod 0.3
|
||||||
============================
|
|
||||||
|
|
||||||
A release focusing on shoring up our fuzzing capabilities, especially with
|
A release focusing on shoring up our fuzzing capabilities, especially with
|
||||||
pathoc.
|
pathoc.
|
||||||
@ -739,8 +721,7 @@ pathoc.
|
|||||||
* Major internal refactoring and cleanup.
|
* Major internal refactoring and cleanup.
|
||||||
* Many bugfixes.
|
* Many bugfixes.
|
||||||
|
|
||||||
22 August 2012: pathod 0.2
|
## 22 August 2012: pathod 0.2
|
||||||
==========================
|
|
||||||
|
|
||||||
* Add pathoc, a pathological HTTP client.
|
* Add pathoc, a pathological HTTP client.
|
||||||
* Add libpathod.test, a truss for using pathod in unit tests.
|
* Add libpathod.test, a truss for using pathod in unit tests.
|
||||||
@ -753,8 +734,7 @@ pathoc.
|
|||||||
* Move the web application to Flask.
|
* Move the web application to Flask.
|
||||||
* Massively expand the documentation.
|
* Massively expand the documentation.
|
||||||
|
|
||||||
5 April 2012: mitmproxy 0.8
|
## 5 April 2012: mitmproxy 0.8
|
||||||
===========================
|
|
||||||
|
|
||||||
* Detailed tutorial for Android interception. Some features that land in
|
* Detailed tutorial for Android interception. Some features that land in
|
||||||
this release have finally made reliable Android interception possible.
|
this release have finally made reliable Android interception possible.
|
||||||
@ -774,8 +754,7 @@ pathoc.
|
|||||||
* Many other improvements, including bugfixes, and expanded scripting API,
|
* Many other improvements, including bugfixes, and expanded scripting API,
|
||||||
and more sophisticated certificate handling.
|
and more sophisticated certificate handling.
|
||||||
|
|
||||||
20 February 2012: mitmproxy 0.7
|
## 20 February 2012: mitmproxy 0.7
|
||||||
===============================
|
|
||||||
|
|
||||||
* New built-in key/value editor. This lets you interactively edit URL query
|
* New built-in key/value editor. This lets you interactively edit URL query
|
||||||
strings, headers and URL-encoded form data.
|
strings, headers and URL-encoded form data.
|
||||||
@ -794,8 +773,7 @@ pathoc.
|
|||||||
* Significant improvements in speed and responsiveness of UI.
|
* Significant improvements in speed and responsiveness of UI.
|
||||||
* Many minor bugfixes and improvements.
|
* Many minor bugfixes and improvements.
|
||||||
|
|
||||||
7 August 2011: mitmproxy 0.6
|
## 7 August 2011: mitmproxy 0.6
|
||||||
============================
|
|
||||||
|
|
||||||
* New scripting API that allows much more flexible and fine-grained
|
* New scripting API that allows much more flexible and fine-grained
|
||||||
rewriting of traffic. See the docs for more info.
|
rewriting of traffic. See the docs for more info.
|
||||||
@ -817,8 +795,7 @@ pathoc.
|
|||||||
* Expanded documentation and examples.
|
* Expanded documentation and examples.
|
||||||
* Countless other small improvements and bugfixes.
|
* Countless other small improvements and bugfixes.
|
||||||
|
|
||||||
27 June 2011: mitmproxy 0.5
|
## 27 June 2011: mitmproxy 0.5
|
||||||
===========================
|
|
||||||
|
|
||||||
* An -n option to start the tools without binding to a proxy port.
|
* An -n option to start the tools without binding to a proxy port.
|
||||||
* Allow scripts, hooks, sticky cookies etc. to run on flows loaded from
|
* Allow scripts, hooks, sticky cookies etc. to run on flows loaded from
|
||||||
@ -837,8 +814,7 @@ pathoc.
|
|||||||
* BUGFIX: Repair a problem that sometimes caused SSL connections to consume
|
* BUGFIX: Repair a problem that sometimes caused SSL connections to consume
|
||||||
100% of CPU.
|
100% of CPU.
|
||||||
|
|
||||||
30 March 2011: mitmproxy 0.4
|
## 30 March 2011: mitmproxy 0.4
|
||||||
============================
|
|
||||||
|
|
||||||
* Full serialization of HTTP conversations
|
* Full serialization of HTTP conversations
|
||||||
* Client and server replay
|
* Client and server replay
|
||||||
@ -847,8 +823,7 @@ pathoc.
|
|||||||
* Dozens of improvements to the mitmproxy console interface
|
* Dozens of improvements to the mitmproxy console interface
|
||||||
* Python scripting hooks for programmatic modification of traffic
|
* Python scripting hooks for programmatic modification of traffic
|
||||||
|
|
||||||
01 March 2010: mitmproxy 0.2
|
## 01 March 2010: mitmproxy 0.2
|
||||||
============================
|
|
||||||
|
|
||||||
* Big speed and responsiveness improvements, thanks to Thomas Roth
|
* Big speed and responsiveness improvements, thanks to Thomas Roth
|
||||||
* Support urwid 0.9.9
|
* Support urwid 0.9.9
|
92
CONTRIBUTING.md
Normal file
92
CONTRIBUTING.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
As an open source project, mitmproxy welcomes contributions of all forms. If you would like to bring the project
|
||||||
|
forward, please consider contributing in the following areas:
|
||||||
|
|
||||||
|
- **Maintenance:** We are *incredibly* thankful for individuals who are stepping up and helping with maintenance. This
|
||||||
|
includes (but is not limited to) triaging issues, reviewing pull requests and picking up stale ones, helping out other
|
||||||
|
users on [StackOverflow](https://stackoverflow.com/questions/tagged/mitmproxy), creating minimal, complete and
|
||||||
|
verifiable examples or test cases for existing bug reports, updating documentation, or fixing minor bugs that have
|
||||||
|
recently been reported.
|
||||||
|
- **Code Contributions:** We actively mark issues that we consider are [good first contributions](
|
||||||
|
https://github.com/mitmproxy/mitmproxy/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22). If you intend to work
|
||||||
|
on a larger contribution to the project, please come talk to us first.
|
||||||
|
|
||||||
|
## Development Setup
|
||||||
|
|
||||||
|
To get started hacking on mitmproxy, please install a recent version of Python (we require at least Python 3.8). The
|
||||||
|
following commands should work on your system:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python3 --version
|
||||||
|
python3 -m pip --help
|
||||||
|
python3 -m venv --help
|
||||||
|
```
|
||||||
|
|
||||||
|
If all of this run successfully, do the following:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/mitmproxy/mitmproxy.git
|
||||||
|
cd mitmproxy
|
||||||
|
./dev.sh # "powershell .\dev.ps1" on Windows
|
||||||
|
```
|
||||||
|
|
||||||
|
The *dev* script will create a [virtualenv](https://virtualenv.pypa.io/) environment in a directory called "venv" and
|
||||||
|
install all mandatory and optional dependencies into it. The primary mitmproxy components are installed as "editable",
|
||||||
|
so any changes to the source in the repository will be reflected live in the virtualenv.
|
||||||
|
|
||||||
|
The main executables for the project - `mitmdump`, `mitmproxy`, and `mitmweb` - are all created within the virtualenv.
|
||||||
|
After activating the virtualenv, they will be on your $PATH, and you can run them like any other command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
. venv/bin/activate # "venv\Scripts\activate" on Windows
|
||||||
|
mitmdump --version
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
If you've followed the procedure above, you already have all the development requirements installed, and you can run the
|
||||||
|
basic test suite with [tox](https://tox.readthedocs.io/):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
tox -e py # runs Python tests
|
||||||
|
```
|
||||||
|
|
||||||
|
Our CI system has additional tox environments that are run on every pull request and branch on GitHub.
|
||||||
|
|
||||||
|
For speedier testing, we recommend you run [pytest](http://pytest.org/) directly on individual test files or folders:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd test/mitmproxy/addons
|
||||||
|
pytest --cov mitmproxy.addons.anticache --cov-report term-missing --looponfail test_anticache.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Pytest does not check the code style, so you want to run `tox -e flake8` and `tox -e mypy` again before committing.
|
||||||
|
|
||||||
|
Please ensure that all patches are accompanied by matching changes in the test suite. The project tries to maintain 100%
|
||||||
|
test coverage and enforces this strictly for some parts of the codebase.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
The following tools are required to build the mitmproxy docs:
|
||||||
|
|
||||||
|
- [Hugo](https://gohugo.io/) (the extended version `hugo_extended` is required)
|
||||||
|
- [modd](https://github.com/cortesi/modd)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd docs
|
||||||
|
modd
|
||||||
|
```
|
||||||
|
|
||||||
|
## Code Style
|
||||||
|
|
||||||
|
Keeping to a consistent code style throughout the project makes it easier to contribute and collaborate. Please stick to
|
||||||
|
the guidelines in [PEP8](https://www.python.org/dev/peps/pep-0008) unless there's a good reason not to.
|
||||||
|
|
||||||
|
This is automatically enforced on every PR. If we detect a linting error, the PR checks will fail and block merging. You
|
||||||
|
can run our lint checks yourself with the following commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
tox -e flake8
|
||||||
|
tox -e mypy # checks static types
|
||||||
|
```
|
47
README.md
Normal file
47
README.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# mitmproxy
|
||||||
|
|
||||||
|
[![Continuous Integration Status](https://github.com/mitmproxy/mitmproxy/workflows/CI/badge.svg?branch=master)](https://github.com/mitmproxy/mitmproxy/actions?query=branch%3Amaster)
|
||||||
|
[![Coverage Status](https://shields.mitmproxy.org/codecov/c/github/mitmproxy/mitmproxy/master.svg?label=codecov)](https://codecov.io/gh/mitmproxy/mitmproxy)
|
||||||
|
[![Latest Version](https://shields.mitmproxy.org/pypi/v/mitmproxy.svg)](https://pypi.python.org/pypi/mitmproxy)
|
||||||
|
[![Supported Python versions](https://shields.mitmproxy.org/pypi/pyversions/mitmproxy.svg)](https://pypi.python.org/pypi/mitmproxy)
|
||||||
|
|
||||||
|
|
||||||
|
``mitmproxy`` is an interactive, SSL/TLS-capable intercepting proxy with a console
|
||||||
|
interface for HTTP/1, HTTP/2, and WebSockets.
|
||||||
|
|
||||||
|
``mitmdump`` is the command-line version of mitmproxy. Think tcpdump for HTTP.
|
||||||
|
|
||||||
|
``mitmweb`` is a web-based interface for mitmproxy.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
The installation instructions are [here](https://docs.mitmproxy.org/stable/overview-installation).
|
||||||
|
|
||||||
|
## Documentation & Help
|
||||||
|
|
||||||
|
General information, tutorials, and precompiled binaries can be found on the mitmproxy website.
|
||||||
|
|
||||||
|
[![mitmproxy.org](https://shields.mitmproxy.org/badge/https%3A%2F%2F-mitmproxy.org-blue.svg)](https://mitmproxy.org/)
|
||||||
|
|
||||||
|
The documentation for mitmproxy is available on our website:
|
||||||
|
|
||||||
|
[![mitmproxy documentation stable](https://shields.mitmproxy.org/badge/docs-stable-brightgreen.svg)](https://docs.mitmproxy.org/stable/)
|
||||||
|
[![mitmproxy documentation master](https://shields.mitmproxy.org/badge/docs-master-brightgreen.svg)](https://docs.mitmproxy.org/master/)
|
||||||
|
|
||||||
|
If you have questions on how to use mitmproxy, please
|
||||||
|
ask them on StackOverflow!
|
||||||
|
|
||||||
|
[![StackOverflow: mitmproxy](https://shields.mitmproxy.org/stackexchange/stackoverflow/t/mitmproxy?color=orange&label=stackoverflow%20questions)](https://stackoverflow.com/questions/tagged/mitmproxy)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
As an open source project, mitmproxy welcomes contributions of all forms.
|
||||||
|
|
||||||
|
[![Dev Guide](https://shields.mitmproxy.org/badge/dev_docs-CONTRIBUTING.md-blue)](./CONTRIBUTING.md)
|
||||||
|
|
||||||
|
Also, please feel free to join our developer Slack!
|
||||||
|
|
||||||
|
[![Slack Developer Chat](https://shields.mitmproxy.org/badge/slack-mitmproxy-E01563.svg)](http://slack.mitmproxy.org/)
|
194
README.rst
194
README.rst
@ -1,194 +0,0 @@
|
|||||||
mitmproxy
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
|ci_status| |coverage| |latest_release| |python_versions|
|
|
||||||
|
|
||||||
This repository contains the **mitmproxy** and **pathod** projects.
|
|
||||||
|
|
||||||
``mitmproxy`` is an interactive, SSL/TLS-capable intercepting proxy with a console
|
|
||||||
interface for HTTP/1, HTTP/2, and WebSockets.
|
|
||||||
|
|
||||||
``mitmdump`` is the command-line version of mitmproxy. Think tcpdump for HTTP.
|
|
||||||
|
|
||||||
``mitmweb`` is a web-based interface for mitmproxy.
|
|
||||||
|
|
||||||
``pathoc`` and ``pathod`` are perverse HTTP client and server applications
|
|
||||||
designed to let you craft almost any conceivable HTTP request, including ones
|
|
||||||
that creatively violate the standards.
|
|
||||||
|
|
||||||
|
|
||||||
Documentation & Help
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
|
|
||||||
General information, tutorials, and precompiled binaries can be found on the mitmproxy website.
|
|
||||||
|
|
||||||
|mitmproxy_site|
|
|
||||||
|
|
||||||
The documentation for mitmproxy is available on our website:
|
|
||||||
|
|
||||||
|mitmproxy_docs_stable| |mitmproxy_docs_master|
|
|
||||||
|
|
||||||
If you have questions on how to use mitmproxy, please
|
|
||||||
ask them on StackOverflow!
|
|
||||||
|
|
||||||
|mitmproxy_stackoverflow|
|
|
||||||
|
|
||||||
Join our developer chat on Slack if you would like to contribute to mitmproxy itself.
|
|
||||||
|
|
||||||
|slack|
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
The installation instructions are `here <https://docs.mitmproxy.org/stable/overview-installation>`__.
|
|
||||||
If you want to contribute changes, keep on reading.
|
|
||||||
|
|
||||||
Contributing
|
|
||||||
------------
|
|
||||||
|
|
||||||
As an open source project, mitmproxy welcomes contributions of all forms. If you would like to bring the project forward,
|
|
||||||
please consider contributing in the following areas:
|
|
||||||
|
|
||||||
- **Maintenance:** We are *incredibly* thankful for individuals who are stepping up and helping with maintenance. This includes (but is not limited to) triaging issues, reviewing pull requests and picking up stale ones, helping out other users on StackOverflow_, creating minimal, complete and verifiable examples or test cases for existing bug reports, updating documentation, or fixing minor bugs that have recently been reported.
|
|
||||||
- **Code Contributions:** We actively mark issues that we consider are `good first contributions`_. If you intend to work on a larger contribution to the project, please come talk to us first.
|
|
||||||
|
|
||||||
Development Setup
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
To get started hacking on mitmproxy, please install a recent version of Python (we require at least 3.6).
|
|
||||||
The following commands should work on your system:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
python3 --version
|
|
||||||
python3 -m pip --help
|
|
||||||
python3 -m venv --help
|
|
||||||
|
|
||||||
If all of this run successfully, do the following:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
git clone https://github.com/mitmproxy/mitmproxy.git
|
|
||||||
cd mitmproxy
|
|
||||||
./dev.sh # "powershell .\dev.ps1" on Windows
|
|
||||||
|
|
||||||
|
|
||||||
The *dev* script will create a `virtualenv`_ environment in a directory called "venv"
|
|
||||||
and install all mandatory and optional dependencies into it. The primary
|
|
||||||
mitmproxy components - mitmproxy and pathod - are installed as
|
|
||||||
"editable", so any changes to the source in the repository will be reflected
|
|
||||||
live in the virtualenv.
|
|
||||||
|
|
||||||
The main executables for the project - ``mitmdump``, ``mitmproxy``,
|
|
||||||
``mitmweb``, ``pathod``, and ``pathoc`` - are all created within the
|
|
||||||
virtualenv. After activating the virtualenv, they will be on your $PATH, and
|
|
||||||
you can run them like any other command:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
. venv/bin/activate # "venv\Scripts\activate" on Windows
|
|
||||||
mitmdump --version
|
|
||||||
|
|
||||||
Testing
|
|
||||||
-------
|
|
||||||
|
|
||||||
If you've followed the procedure above, you already have all the development
|
|
||||||
requirements installed, and you can run the basic test suite with tox_:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
tox -e py # runs Python tests
|
|
||||||
|
|
||||||
Our CI system has additional tox environments that are run on every pull request and branch on GitHub.
|
|
||||||
|
|
||||||
For speedier testing, we recommend you run `pytest`_ directly on individual test files or folders:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
cd test/mitmproxy/addons
|
|
||||||
pytest --cov mitmproxy.addons.anticache --cov-report term-missing --looponfail test_anticache.py
|
|
||||||
|
|
||||||
Pytest does not check the code style, so you want to run ``tox -e flake8`` again before committing.
|
|
||||||
|
|
||||||
Please ensure that all patches are accompanied by matching changes in the test
|
|
||||||
suite. The project tries to maintain 100% test coverage and enforces this strictly for some parts of the codebase.
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The following tools are required to build the mitmproxy docs:
|
|
||||||
|
|
||||||
- Hugo_ (the extended version ``hugo_extended`` is required)
|
|
||||||
- modd_
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
cd docs
|
|
||||||
modd
|
|
||||||
|
|
||||||
|
|
||||||
Code Style
|
|
||||||
----------
|
|
||||||
|
|
||||||
Keeping to a consistent code style throughout the project makes it easier to
|
|
||||||
contribute and collaborate. Please stick to the guidelines in
|
|
||||||
`PEP8`_ and the `Google Style Guide`_ unless there's a very
|
|
||||||
good reason not to.
|
|
||||||
|
|
||||||
This is automatically enforced on every PR. If we detect a linting error, the
|
|
||||||
PR checks will fail and block merging. You can run our lint checks yourself
|
|
||||||
with the following commands:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
tox -e flake8
|
|
||||||
tox -e mypy # checks static types
|
|
||||||
|
|
||||||
|
|
||||||
.. |mitmproxy_site| image:: https://shields.mitmproxy.org/badge/https%3A%2F%2F-mitmproxy.org-blue.svg
|
|
||||||
:target: https://mitmproxy.org/
|
|
||||||
:alt: mitmproxy.org
|
|
||||||
|
|
||||||
.. |mitmproxy_docs_stable| image:: https://shields.mitmproxy.org/badge/docs-stable-brightgreen.svg
|
|
||||||
:target: https://docs.mitmproxy.org/stable/
|
|
||||||
:alt: mitmproxy documentation stable
|
|
||||||
|
|
||||||
.. |mitmproxy_docs_master| image:: https://shields.mitmproxy.org/badge/docs-master-brightgreen.svg
|
|
||||||
:target: https://docs.mitmproxy.org/master/
|
|
||||||
:alt: mitmproxy documentation master
|
|
||||||
|
|
||||||
.. |mitmproxy_stackoverflow| image:: https://shields.mitmproxy.org/stackexchange/stackoverflow/t/mitmproxy?color=orange&label=stackoverflow%20questions
|
|
||||||
:target: https://stackoverflow.com/questions/tagged/mitmproxy
|
|
||||||
:alt: StackOverflow: mitmproxy
|
|
||||||
|
|
||||||
.. |slack| image:: https://shields.mitmproxy.org/badge/slack-mitmproxy-E01563.svg
|
|
||||||
:target: http://slack.mitmproxy.org/
|
|
||||||
:alt: Slack Developer Chat
|
|
||||||
|
|
||||||
.. |ci_status| image:: https://github.com/mitmproxy/mitmproxy/workflows/CI/badge.svg?branch=master
|
|
||||||
:target: https://github.com/mitmproxy/mitmproxy/actions?query=branch%3Amaster
|
|
||||||
:alt: Continuous Integration Status
|
|
||||||
|
|
||||||
.. |coverage| image:: https://shields.mitmproxy.org/codecov/c/github/mitmproxy/mitmproxy/master.svg?label=codecov
|
|
||||||
:target: https://codecov.io/gh/mitmproxy/mitmproxy
|
|
||||||
:alt: Coverage Status
|
|
||||||
|
|
||||||
.. |latest_release| image:: https://shields.mitmproxy.org/pypi/v/mitmproxy.svg
|
|
||||||
:target: https://pypi.python.org/pypi/mitmproxy
|
|
||||||
:alt: Latest Version
|
|
||||||
|
|
||||||
.. |python_versions| image:: https://shields.mitmproxy.org/pypi/pyversions/mitmproxy.svg
|
|
||||||
:target: https://pypi.python.org/pypi/mitmproxy
|
|
||||||
:alt: Supported Python versions
|
|
||||||
|
|
||||||
.. _virtualenv: https://virtualenv.pypa.io/
|
|
||||||
.. _`pytest`: http://pytest.org/
|
|
||||||
.. _tox: https://tox.readthedocs.io/
|
|
||||||
.. _Hugo: https://gohugo.io/
|
|
||||||
.. _modd: https://github.com/cortesi/modd
|
|
||||||
.. _PEP8: https://www.python.org/dev/peps/pep-0008
|
|
||||||
.. _`Google Style Guide`: https://google.github.io/styleguide/pyguide.html
|
|
||||||
.. _StackOverflow: https://stackoverflow.com/questions/tagged/mitmproxy
|
|
||||||
.. _`good first contributions`: https://github.com/mitmproxy/mitmproxy/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
|
|
@ -52,7 +52,7 @@ command line.
|
|||||||
|
|
||||||
If you would like to install mitmproxy directly from source code or the
|
If you would like to install mitmproxy directly from source code or the
|
||||||
GitHub master branch, please see the our
|
GitHub master branch, please see the our
|
||||||
[README](https://github.com/mitmproxy/mitmproxy#installation)
|
[CONTRIBUTING.md](https://github.com/mitmproxy/mitmproxy/blob/master/CONTRIBUTING.md)
|
||||||
on GitHub.
|
on GitHub.
|
||||||
|
|
||||||
### Installation from the Python Package Index (PyPI)
|
### Installation from the Python Package Index (PyPI)
|
||||||
|
@ -626,6 +626,8 @@ class HttpLayer(layer.Layer):
|
|||||||
if not can_use_context_connection:
|
if not can_use_context_connection:
|
||||||
|
|
||||||
context.server = Server(event.address)
|
context.server = Server(event.address)
|
||||||
|
if event.tls:
|
||||||
|
context.server.sni = event.address[0].encode()
|
||||||
|
|
||||||
if event.via:
|
if event.via:
|
||||||
assert event.via.scheme in ("http", "https")
|
assert event.via.scheme in ("http", "https")
|
||||||
|
2
setup.py
2
setup.py
@ -9,7 +9,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
here = os.path.abspath(os.path.dirname(__file__))
|
here = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
|
||||||
with open(os.path.join(here, 'README.rst'), encoding='utf-8') as f:
|
with open(os.path.join(here, 'README.md'), encoding='utf-8') as f:
|
||||||
long_description = f.read()
|
long_description = f.read()
|
||||||
|
|
||||||
with open(os.path.join(here, "mitmproxy", "version.py")) as f:
|
with open(os.path.join(here, "mitmproxy", "version.py")) as f:
|
||||||
|
Loading…
Reference in New Issue
Block a user