aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/har_extractor.py2
-rw-r--r--examples/iframe_injector.py22
-rw-r--r--examples/modify_response_body.py11
-rw-r--r--examples/sslstrip.py38
-rw-r--r--examples/upsidedownternet.py20
5 files changed, 42 insertions, 51 deletions
diff --git a/examples/har_extractor.py b/examples/har_extractor.py
index 90412ec0..76059d8e 100644
--- a/examples/har_extractor.py
+++ b/examples/har_extractor.py
@@ -140,7 +140,7 @@ def response(flow):
for k, v in flow.request.query or {}]
response_body_size = len(flow.response.content)
- response_body_decoded_size = len(flow.response.get_decoded_content())
+ response_body_decoded_size = len(flow.response.content)
response_body_compression = response_body_decoded_size - response_body_size
entry = HAR.entries({
diff --git a/examples/iframe_injector.py b/examples/iframe_injector.py
index 70247d31..352c3c24 100644
--- a/examples/iframe_injector.py
+++ b/examples/iframe_injector.py
@@ -2,7 +2,6 @@
# (this script works best with --anticache)
import sys
from bs4 import BeautifulSoup
-from mitmproxy.models import decoded
iframe_url = None
@@ -17,14 +16,13 @@ def start():
def response(flow):
if flow.request.host in iframe_url:
return
- with decoded(flow.response): # Remove content encoding (gzip, ...)
- html = BeautifulSoup(flow.response.content, "lxml")
- if html.body:
- iframe = html.new_tag(
- "iframe",
- src=iframe_url,
- frameborder=0,
- height=0,
- width=0)
- html.body.insert(0, iframe)
- flow.response.content = str(html).encode("utf8")
+ html = BeautifulSoup(flow.response.content, "lxml")
+ if html.body:
+ iframe = html.new_tag(
+ "iframe",
+ src=iframe_url,
+ frameborder=0,
+ height=0,
+ width=0)
+ html.body.insert(0, iframe)
+ flow.response.content = str(html).encode("utf8")
diff --git a/examples/modify_response_body.py b/examples/modify_response_body.py
index 23ad0151..b4632248 100644
--- a/examples/modify_response_body.py
+++ b/examples/modify_response_body.py
@@ -2,8 +2,6 @@
# (this script works best with --anticache)
import sys
-from mitmproxy.models import decoded
-
state = {}
@@ -17,8 +15,7 @@ def start():
def response(flow):
- with decoded(flow.response): # automatically decode gzipped responses.
- flow.response.content = flow.response.content.replace(
- state["old"],
- state["new"]
- )
+ flow.response.content = flow.response.content.replace(
+ state["old"],
+ state["new"]
+ )
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)
diff --git a/examples/upsidedownternet.py b/examples/upsidedownternet.py
index fafdefce..d5059092 100644
--- a/examples/upsidedownternet.py
+++ b/examples/upsidedownternet.py
@@ -1,17 +1,15 @@
from six.moves import cStringIO as StringIO
from PIL import Image
-from mitmproxy.models import decoded
def response(flow):
if flow.response.headers.get("content-type", "").startswith("image"):
- with decoded(flow.response): # automatically decode gzipped responses.
- try:
- s = StringIO(flow.response.content)
- img = Image.open(s).rotate(180)
- s2 = StringIO()
- img.save(s2, "png")
- flow.response.content = s2.getvalue()
- flow.response.headers["content-type"] = "image/png"
- except: # Unknown image types etc.
- pass
+ try:
+ s = StringIO(flow.response.content)
+ img = Image.open(s).rotate(180)
+ s2 = StringIO()
+ img.save(s2, "png")
+ flow.response.content = s2.getvalue()
+ flow.response.headers["content-type"] = "image/png"
+ except: # Unknown image types etc.
+ pass