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