mitmproxy vous permet de choisir le format à afficher lors de l'affichage du contenu de la réponse à la requête.
Le mécanisme d'affichage de chaque format est appelé ** vue du contenu ** dans mitmproxy.
Les éléments de base tels que html, css et json sont fournis en standard.
Puisque mimproxy peut être étendu avec Python, vous pouvez également créer votre propre ** vue de contenu **!
Exemples dans le référentiel officiel github Alors, prenons ce code comme exemple.
Un exemple de ceci est ** "Afficher le contenu de la demande / réponse dans un cas d'échange" **.
custom_contentview.py
from mitmproxy import contentviews
# contentviews.Créer une classe qui hérite de View
class ViewSwapCase(contentviews.View):
name = "swapcase"
#Spécifiez une touche de raccourci pour appliquer cet affichage lors du démarrage avec CUI
prompt = ("swap case text", "z")
content_types = ["text/plain"]
#Mettez le processus de réécriture de contenu principal ici
# data:Contenu de la demande / réponse
# metadata: metadata["headers"]Vous pouvez voir les en-têtes HTTP sur
def __call__(self, data, **metadata):
return "case-swapped text", contentviews.format_text(data.swapcase())
view = ViewSwapCase()
def load(l):
contentviews.add(view)
def done():
contentviews.remove(view)
Je ne pouvais pas bien le lire avec mon propre mitmproxy tel quel.
En regardant le code source de mitmproxy et en faisant diverses choses, j'ai réussi à charger en changeant def load (l)
en def start ()
.
-def load(l):
+def start():
contentviews.add(view)
En regardant le github de mitmproxy, il semble que la version que vous exécutez soit différente car elle a été réécrite de start
à load
en cours de route.
addon loader: add boot_into, which replaces returning from start()
Vous pouvez ajouter le chemin du fichier de script en ajoutant -s
à l'argument de la commande mitmproxy
(ou mitmweb
, mitmdump
).
J'utilise mitmweb
parce que je ne peux pas utiliser mitmproxy
dans un environnement Windows.
mitmweb -s custom_contentview.py
Maintenant, si ** swapcase ** est ajouté à la sélection du format de demande / réponse, cela réussit.
Overview — mitmproxy 2.0.2 documentation
Recommended Posts