aboutsummaryrefslogtreecommitdiffstats
path: root/docs/features/reverseproxy.rst
diff options
context:
space:
mode:
authorRyan Laughlin <rofreg@gmail.com>2016-09-26 12:37:17 -0400
committerMaximilian Hils <git@maximilianhils.com>2016-09-26 22:30:01 -0700
commite0f9aef89ca572475ab471c1961fc32533c5bac8 (patch)
tree850a759ce8464e22364fe07463f106d066550843 /docs/features/reverseproxy.rst
parent1a762cdce56f57b74ed3b5de74e1dc11be6fc812 (diff)
downloadmitmproxy-e0f9aef89ca572475ab471c1961fc32533c5bac8.tar.gz
mitmproxy-e0f9aef89ca572475ab471c1961fc32533c5bac8.tar.bz2
mitmproxy-e0f9aef89ca572475ab471c1961fc32533c5bac8.zip
Update reverse proxy host header docs
Diffstat (limited to 'docs/features/reverseproxy.rst')
-rw-r--r--docs/features/reverseproxy.rst33
1 files changed, 9 insertions, 24 deletions
diff --git a/docs/features/reverseproxy.rst b/docs/features/reverseproxy.rst
index 86a5b2e4..85ad33e8 100644
--- a/docs/features/reverseproxy.rst
+++ b/docs/features/reverseproxy.rst
@@ -29,29 +29,14 @@ them to what the server expects.
Host Header
-----------
-In reverse proxy mode, mitmproxy does not rewrite the host header. While often useful, this
-may lead to issues with public web servers. For example, consider the following scenario:
+In reverse proxy mode, mitmproxy automatically rewrites the Host header to match the
+upstream server. This allows mitmproxy to easily connect to existing endpoints on the
+open web (e.g. ``mitmproxy -R https://example.com``).
-.. code-block:: none
- :emphasize-lines: 5
-
- >>> mitmdump -d -R http://example.com/
- >>> curl http://localhost:8080/
-
- >> GET https://example.com/
- Host: localhost:8080
- User-Agent: curl/7.35.0
- [...]
-
- << 404 Not Found 345B
-
-Since the Host header doesn't match "example.com", an error is returned.
-There are two ways to solve this:
+However, keep in mind that absolute URLs within the returned document or HTTP redirects will
+NOT be rewritten by mitmproxy. This means that if you click on a link for "http://example.com"
+in the returned web page, you will be taken directly to that URL, bypassing mitmproxy.
-1. Modify the hosts file of your OS so that "example.com" resolves to your proxy's IP.
- Then, access example.com directly. Make sure that your proxy can still resolve the original IP
- or specify an IP in mitmproxy.
-2. Use mitmproxy's :ref:`setheaders` feature to rewrite the host header:
- ``--setheader :~q:Host:example.com``.
- However, keep in mind that absolute URLs within the returned document or HTTP redirects will
- cause the client application to bypass the proxy.
+One possible way to address this is to modify the hosts file of your OS so that "example.com"
+resolves to your proxy's IP, and then access the proxy by going directly to example.com.
+Make sure that your proxy can still resolve the original IP, or specify an IP in mitmproxy. \ No newline at end of file