aboutsummaryrefslogtreecommitdiffstats
path: root/doc-src/features/sticky.html
blob: 1b79f9224f4f4d795ad3ddc57ad29e5cfe543f40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
## Sticky cookies

When the sticky cookie option is set, __mitmproxy__ will add the cookie most
recently set by the server to any cookie-less request. Consider a service that
sets a cookie to track the session after authentication. Using sticky cookies,
you can fire up mitmproxy, and authenticate to a service as you usually would
using a browser. After authentication, you can request authenticated resources
through mitmproxy as if they were unauthenticated, because mitmproxy will
automatically add the session tracking cookie to requests. Among other things,
this lets you script interactions with authenticated resources (using tools
like wget or curl) without having to worry about authentication. 

Sticky cookies are especially powerful when used in conjunction with [client
replay](@!urlTo("clientreplay.html")!@) - you can record the authentication
process once, and simply replay it on startup every time you need to interact
with the secured resources.

<table class="table">
    <tbody>
        <tr>
            <th width="20%">command-line</th>
            <td>
                <ul>
                    <li>-t (sticky cookies on all requests)</li>
                    <li>-T FILTER (sticky cookies on requests matching filter</li>
                </ul>
            </td>
        </tr>
        <tr>
            <th>mitmproxy shortcut</th> <td><b>t</b></td>
        </tr>
    </tbody>
</table>


## Sticky auth

The sticky auth option is analogous to the sticky cookie option, in that HTTP
__Authorization__ headers are simply replayed to the server once they have been
seen. This is enough to allow you to access a server resource using HTTP Basic
authentication through the proxy. Note that __mitmproxy__ doesn't (yet) support
replay of HTTP Digest authentication. 

<table class="table">
    <tbody>
        <tr>
            <th width="20%">command-line</th>
            <td>
                <ul>
                    <li>-u (sticky auth on all requests)</li>
                    <li>-U FILTER (sticky auth on requests matching filter</li>
                </ul>
            </td>
        </tr>
        <tr>
            <th>mitmproxy shortcut</th> <td><b>u</b></td>
        </tr>
    </tbody>
</table>