Go to file
Aldo Cortesi 9c30e2e86d Correct handing of IDNA encoding of internationalized domain names.
- Use IDNA encoding for hostnames gleaned by upstream-cert sniffing
- Use IDNA decoding for URL display in mitmproxy and mitmdump.
2012-07-03 22:27:16 +12:00
doc-src Bump version number. 2012-05-11 09:52:17 +12:00
examples Docs and comments for WSGI app example. 2012-04-24 14:58:18 +12:00
libmproxy Correct handing of IDNA encoding of internationalized domain names. 2012-07-03 22:27:16 +12:00
scripts Add a script to generate a contributors list, and use it to make a CONTRIBUTORS file. 2011-03-19 20:34:53 +13:00
test Catch and handle SSL connection errors. 2012-07-01 12:10:32 +12:00
.coveragerc Adjust for new get_remote_cert API. 2012-06-28 10:02:14 +12:00
.gitignore Extract protocol and tcp server implementations into netlib. 2012-06-19 09:58:50 +12:00
CHANGELOG Draft 0.8 changelog. 2012-04-04 11:46:56 +12:00
CONTRIBUTORS Documentation. 2012-04-09 15:30:43 +12:00
LICENSE Add an "SSL exception" to the license. 2011-06-02 10:43:11 +12:00
MANIFEST.in Add README.txt for PyPi. 2012-02-25 13:16:30 +13:00
mitmdump Shut mitmdump down gracefully on SIGTERM. 2012-04-15 10:35:19 +12:00
mitmproxy Move palette option getting/setting to mitmproxy. 2012-07-03 13:42:09 +12:00
README.mkd Nose mopup: docs, no cover pragmas, a few missing path specs. 2012-06-09 13:55:55 +12:00
README.txt Nose mopup: docs, no cover pragmas, a few missing path specs. 2012-06-09 13:55:55 +12:00
setup.py Add dependency reference for netlib. 2012-06-28 15:14:57 +12:00
todo Start conversion to nose. 2012-06-09 10:57:00 +12:00

**mitmproxy** is an SSL-capable man-in-the-middle proxy for HTTP. It provides a
console interface that allows traffic flows to be inspected and edited on the
fly.

**mitmdump** is the command-line version of mitmproxy, with the same
functionality but without the user interface. Think tcpdump for HTTP.

Complete documentation and a set of practical tutorials is included in the
distribution package, and is also available at mitmproxy.org_.


Features
--------

- Intercept HTTP requests and responses and modify them on the fly.
- Save complete HTTP conversations for later replay and analysis.
- Replay the client-side of an HTTP conversations.
- Replay HTTP responses of a previously recorded server.
- Reverse proxy mode to forward traffic to a specified server.
- Make scripted changes to HTTP traffic using Python. 
- SSL certificates for interception are generated on the fly.


Download
--------

Releases and rendered documentation can be found on the mitmproxy website:

mitmproxy.org_

Source is hosted on github: 

`github.com/cortesi/mitmproxy`_


Community
---------

Come join us in the #mitmproxy channel on the OFTC IRC network
(irc.oftc.net, port 6667).

We also have a mailing list, hosted here:

http://groups.google.com/group/mitmproxy


Requirements
------------

* Python_ 2.6.x or 2.7.x.
* PyOpenSSL_ 0.12 or newer.
* pyasn1_ 0.1.2 or newer.
* urwid_  version 0.9.8 or newer.
* PIL_  version 1.1 or newer.
* lxml_ version 2.3 or newer.

The following auxiliary components may be needed if you plan to hack on
mitmproxy:

* The test suite uses the nose_ unit testing
  framework.
* Rendering the documentation requires countershape_.

**mitmproxy** is tested and developed on OSX, Linux and OpenBSD. Windows is not
supported at the moment.

You should also make sure that your console environment is set up with the
following: 
    
* EDITOR environment variable to determine the external editor.
* PAGER environment variable to determine the external pager.
* Appropriate entries in your mailcap files to determine external
  viewers for request and response contents.

.. _mitmproxy.org: http://mitmproxy.org
.. _github.com/cortesi/mitmproxy: http://github.com/cortesi/mitmproxy
.. _python: http://www.python.org
.. _PyOpenSSL: http://pypi.python.org/pypi/pyOpenSSL
.. _pyasn1: http://pypi.python.org/pypi/pyasn1
.. _PIL: http://www.pythonware.com/products/pil/
.. _lxml: http://lxml.de/
.. _urwid: http://excess.org/urwid/
.. _nose: http://readthedocs.org/docs/nose/en/latest/
.. _countershape: http://github.com/cortesi/countershape