From 14443805f18d211e274612ff58bed9d368cfe012 Mon Sep 17 00:00:00 2001 From: allfro Date: Mon, 23 Jul 2012 21:18:36 -0300 Subject: [PATCH] Update README.md --- README.md | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ca63432..1d24fce 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ -pymiproxy - Python Micro Interceptor Proxy -========================================== +#pymiproxy - Python Micro Interceptor Proxy A small and sweet man-in-the-middle proxy capable of doing HTTP and HTTP over SSL. -Introduction ------------- +##Introduction pymiproxy is a small, lightweight, man-in-the-middle proxy capable of performing HTTP and HTTPS (or SSL) inspection. The proxy provides a built-in certificate authority that is capable of generating certificates for SSL-based destinations. @@ -13,7 +11,7 @@ Pymiproxy is also extensible and provides two methods for extending the proxy: m interface. It is ideal for situations where you're in dire need of a cool proxy to tamper with out- and/or in-bound HTTP data. -Installation Requirements +##Installation Requirements ------------------------- The following modules are required: @@ -21,8 +19,7 @@ The following modules are required: - pyOpenSSL -Installation ------------- +##Installation Just run the following command at the command prompt: @@ -30,8 +27,7 @@ Just run the following command at the command prompt: $ sudo python setup.py install ``` -Usage ------ +##Usage The module offers a few examples in the code. In brief, pymiproxy can be run right-away by issuing the following command at the the command-prompt: @@ -44,8 +40,7 @@ This will invoke pymiproxy with the ```DebugInterceptor``` plugin which simply o and response. The proxy runs on port 8080 and listens on all addresses. Go ahead and give it a try. -Extending or Implementing pymiproxy ------------------------------------ +##Extending or Implementing pymiproxy There are two ways of extending the proxy: @@ -57,8 +52,7 @@ There are two ways of extending the proxy: The decision on which method you choose to use is entirely dependant on whether or not you wish to push the data being intercepted through a set of interceptors or not. -Interceptor Plugins -------------------- +###Interceptor Plugins There are currently two types of interceptor plugins: @@ -108,8 +102,7 @@ if __name__ == '__main__': proxy.server_close() ``` -Method Overloading ------------------- +###Method Overloading The alternate approach to extending the proxy functionality is to subclass the ProxyHandler class and overload the ```mitm_request``` and ```mitm_response``` methods. The following is a quick example: @@ -143,8 +136,7 @@ if __name__ == '__main__': Note: In both cases, the methods that process the data need to return the data back to the proxy handler. Otherwise, you'll get an exception. -Kudos ------ +##Kudos Thanks to the great documentation at python.org, GnuCitizen's PDP for the ideas, the pyOpenSSL group for making a great OpenSSL API.