Recherche d'un proxy de débogage HTTP pour Mac similaire à Fiddler sous Windows [fermé]

240

Dans les emplois précédents, lorsque je travaillais sur une machine Windows, j'avais utilisé Fiddler pour afficher les transactions HTTP et le débogage.

Je cherche en particulier à surveiller les transactions HTTP d'un site ajax sur lequel je travaille pour vérifier que le site fonctionne comme prévu. La réécriture de HTTP (fournie par Fiddler) est une bonne chose, mais pas indispensable.

Quelqu'un peut-il recommander quelque chose de similaire pour une utilisation sur un Mac?

Doug Harris
la source
4
Cela a été fermé, mais existe toujours, donc doit avoir ajouté: Fiddler est maintenant en alpha pour le Mac OS.
boomhauer
1
Je ne sais pas pourquoi cela serait fermé? il a 113 votes positifs. ce n'est pas comme si c'était une demande sur le débordement de pile.
genxgeek
Lisez la justification qui se trouve juste au-dessus de ces commentaires - "Les questions sur les produits, les services ou les recommandations relatives au matériel d'apprentissage ne sont pas dans le sujet"
Doug Harris
Fireup Fiddler sur une machine Windows proche et configurez votre MAC pour utiliser un proxy sur une machine Windows et le tour est joué! tout sera visible sur Windows sur votre MAC :)
Korayem
2
FYI, pour ceux qui ont vraiment été enthousiasmés par la lecture du commentaire de @boomhauer: Fiddler pour OSX est toujours dans Alpha. Après avoir été touché en juillet 2013, il nécessite le framework Mono (il s’agit donc d’un simple wrapper pour la version Windows, pas en fait. re-factorisé pour Cocoa), et la version présente la note suivante: "Remarque pour Mac: Le framework WinForms sur Mac est presque inutilement buggé. Votre meilleur choix est d'exécuter Fiddler sur une machine virtuelle Linux ou Windows et de pointer les paramètres de proxy du Mac sur celui-ci. . "
Anthony

Réponses:

130

Utilisez Chrome et accédez à chrome: // net-internals /

Il permet une analyse détaillée et des vidages.

brains_at_work
la source
1
Agréable. Une idée quand cela a été ajouté à chrome?
Doug Harris
2
Non désolé. Auparavant, je travaillais avec Fiddler sous Windows, mais en passant à un Mac, je suis tombé sur Internet en cherchant des fonctionnalités chromées cachées.
brains_at_work
5
cet outil semble "soigné", mais comment pouvez-vous afficher la charge utile complète de la demande (en-têtes de demandes GET?)
genxgeek
D'après les informations dont je dispose, cela ne permet pas de modifier les données en transit, comme Fiddler le fait avec FiddlerScript, AutoResponder et les points d'arrêt. Bon outil mais à des fins différentes.
iX3
33
cet outil ne semble capturer que le trafic chrome. Existe-t-il un moyen d'utiliser cet outil pour capturer le trafic http d'un processus particulier?
morpheus
71

J'ai trouvé Charles Proxy . C'est beaucoup plus proche de la fonctionnalité de Fiddler. Ce n'est pas gratuit, mais ça vaut peut-être le prix.

Doug Harris
la source
Juste curieux: est-ce que quelqu'un ici l'a déjà utilisé?
Arjan
Je l'ai utilisé pendant une heure ou deux après l'avoir trouvée. La version d’essai a quelques écrans de rappel et une restriction de 30 minutes, mais je ne pense pas que ce soit déraisonnable. Je cherchais des en-têtes spécifiques dans la réponse HTTP et je pouvais les voir facilement.
Doug Harris
1
La bonne chose à propos de Charles est qu’il est disponible pour OSX et Windows, donc si vous allez souvent en arrière, c’est un bon outil commun.
Justin Ohms
5
Une fonctionnalité importante fournie par charles (et fiddler et peut-être webscarab) est la capacité d'intercepter et de modifier les requêtes, y compris le décryptage https.
urban_raccoons
1
J'utilise Charles pour décrypter les requêtes https de Instagram, Facebook et autres applications mobiles. Pointez simplement iPhone Proxy sur Charles et je pourrai voir comment ils envoient des données et quelles données ils envoient!
Mário Carvalho
35

J'ai utilisé mitmproxy pour intercepter le trafic HTTP. C'est un excellent outil que vous pouvez utiliser pour déboguer des appareils mobiles ou tout système d'exploitation.

eikes
la source
J'adore ça! Incidemment, pour tous les script kiddies, dans le cas où vous écrivez du code dans autre chose que JS assis dans le navigateur, cette chose est LE ticket.
Shane
30

Mon application Mac préférée pour la surveillance du trafic est HTTPScoop . Je détaille cela ainsi que l’utilisation de tcpdump à partir de la ligne de commande de ce message que j’ai blogué l’année dernière .

Ted Naleid
la source
Si vous connaissez Wireshark (ou l’analyseur de paquets de cacao moins puissant): pouvez-vous comparer HTTPScoop à cela?
Arjan
1
Cacao Packet Analyzer est également très simple. Cependant, je n'ai jamais compris comment filtrer une adresse IP de port ou de serveur spécifique, puis voir à la fois la demande et la réponse ... Cela se fait facilement dans Wireshark. (Tapez simplement smtpcomme filtre d'affichage pour voir tout le trafic qui utilise le protocole SMTP. Ou tcp.port == 25pour obtenir tout le trafic sur le port 25 et ses réponses. Ou http and ip.addr == xxxpour obtenir tout le trafic HTTP à destination et en provenance d'un serveur.)
Arjan le
1
httpscoop semblait prometteur. Malheureusement, il semble avoir été abandonné et je n’ai pas pu capturer le trafic localhost le 10.9.2. La dernière version date de 2009 et le site web vante la nouvelle v2.0 qui ne semble pas être disponible: /
Jean
1
J'ai essayé d'utiliser cette application, c'est horrible comparé à un violoneux. Je veux capturer tout le trafic et tous les ports toutes les interfaces pas le port 80 sur localhost. J'ai essayé d'ajouter les ports que je voulais via les préférences (avec scoop off). Cela ne m'a pas aidé car les choses que je voulais surveiller étaient sur deux interfaces différentes, par exemple lo / en0
KnuturO
1
Lien vers le blog ne fonctionne pas :(
Reg
19

Ce n'est pas ce que vous avez demandé, mais dans Firefox, l' add-on Live HTTP Headers est tout ce dont j'ai besoin si je veux modifier et relire les demandes, y compris la modification de l'URL et de la méthode HTTP.

En-têtes HTTP en direct

Dans Firebug, la surveillance du réseau affiche toutes les demandes et réponses. De même, dans Safari, la sous- fenêtre Ressources de Web Inspector intégré couvre également la plupart de mes besoins. (Activez l'inspecteur Web via les préférences: Afficher le menu Développement dans la barre de menus .) Chrome et Firefox disposent d'outils similaires.

Quand les choses deviennent plus compliquées, je lance mon renifleur de paquets Wireshark . Cependant, contrairement à Fiddler, Wireshark ne vous permet pas de modifier les données et ne prend pas en charge des éléments tels que les répondeurs automatiques, comme le fait apparemment Fiddler.

Pour Wireshark, voir HTTP (Hyper Text Transfer Protocol) pour des informations de capture HTTP génériques et Capture de paquets HTTP pour déboguer Apache , pour consulter des exemples de filtres d' affichage . (Vous pouvez définir le filtre de capture sur " port 80" pour afficher toutes les demandes adressées à ce port et les réponses de ce port. Ou, pour limiter certains serveurs, utilisez le filtre de capture " port 80 and host www.google.com".)

# Afficher uniquement 404: page non trouvée
http.response.code == 404

# Afficher uniquement certaines méthodes HTTP
http.request.method == "POST" || http.request.method == "PUT"

# Afficher uniquement le javascript
http.content_type contient "javascript"

Notez que Wireshark peut décompresser gzip ou dégonfler à la volée les éléments encodés (compressés). Cela facilite beaucoup la lecture, car la plupart des serveurs Web compresseront les données qu’ils envoient à un navigateur.

(En ce qui concerne les répondeurs automatiques: l'excellent JS Bin contient une courte vidéo sur son utilisation pour déboguer les demandes Ajax. Si vous ne connaissez pas JS Bin, visualisez d'abord la vidéo d'introduction.)

Arjan
la source
+1 pour Firebug - J'aime leur outil de surveillance du réseau
Josh
Je l'ai essayé mais je ne pouvais pas faire une nouvelle demande à une autre URL (dans le même domaine) et ne pouvais pas trouver comment (d'un GET à un POST par exemple).
Purefan
@Purefan, sans plus de détails nous ne pouvons pas aider; cela fonctionne pour moi, voir la capture d'écran que je viens d'ajouter. Vous avez peut-être rencontré mozdev.org/bugs/show_bug.cgi?id=25831
Arjan
7

En plus de Charles (déjà mentionné), j'aime également le module complémentaire HttpFox pour Mozilla Firefox. Comme Charles, vous pouvez l’utiliser sur Mac et Windows. Il est plus léger que Charles car il réside dans le navigateur, ce qui est utile pour un dépannage rapide. Voici quelques informations de la page HttpFox:

HttpFox surveille et analyse tout le trafic HTTP entrant et sortant entre le navigateur et les serveurs Web.

Son objectif est d’apporter la fonctionnalité connue d’outils tels que HttpWatch ou IEInspector au navigateur Firefox.

Les informations disponibles par demande incluent:

  • En-têtes de demande et de réponse
  • Envoyé et reçu des cookies
  • Paramètres de chaîne de requête
  • Paramètres POST
  • Corps de réponse

Et une capture d'écran:

Capture d'écran du complément HttpFox pour Mozilla Firefox

Chris W. Rea
la source
Ce n'est pas compatible avec les nouvelles versions de Firefox (Firedox 57 et Firedex Deveolper Edition 57)
Promather
6

Ce n'est pas un proxy, mais cela aide à déboguer HTTP:

Commencez simplement une analyse sur l'interface sur laquelle vous allez avoir le trafic HTTP, exécutez le trafic, puis arrêtez l'analyse et tapez "HTTP" comme chaîne de filtrage. Vous pourrez alors inspecter tous les paquets de la conversation HTTP. Lorsque la vue Détail du paquet est ouverte, vous pouvez ouvrir la section HTTP et celle-ci restera ouverte entre les paquets.

C'est un excellent outil à utiliser et il ne vous oblige pas à modifier le proxy du navigateur. D'autre part, il ne peut pas aider le trafic HTTPS, car celui-ci est crypté. (Bien qu'il puisse déchiffrer les connexions SSL utilisant RSA )

w00t
la source
2
Juste une mise à jour: Wireshark est pénible pour OS X. Il nécessite X11, qui n’est plus inclus dans OS X, de sorte que vous finissez par utiliser environ 200 Mo de disque.
Marko Bonaci
2
Juste une mise à jour sur la mise à jour de @MarkoBonaci, Wireshark 2.x fonctionne désormais parfaitement sous OSX, si bien que la nécessité de X11 a été abandonnée.
0x7c0
@MarkoBonaci - vous devriez plutôt installer avec qt à la place.
arcseldon
5

Je suis en retard mais - j'utilise le proxy Paros . C'est en Java, donc, multiplate-forme. Bien que si vous préférez qu'il soit emballé comme une application, il y a une ici en bas.

Abhinav Gupta
la source
2

Il semble que le logiciel gratuit GlimmerBlocker peut faire partie du problème .

Bien sûr, il peut bloquer tout type de contenu et transformer les réponses avant que le navigateur ne les reçoive. Mais il peut en fait modifier les demandes et les réponses . Et bien que ce ne soit pas un vrai débogage, il offre également une journalisation. Donc, cela pourrait répondre aux besoins de base :

GlimmerBlocker comporte 4 types de scripts, et certains objets ne sont définis que pour certains types de script:

  • Proxy global: définit les paramètres du proxy global et permet de tester par exemple le nom de l'emplacement ou le réseau AirPort.
  • modification de la requête: cela peut changer l'URL demandée, renvoyer une réponse de redirection au navigateur ou renvoyer text / html au navigateur.
  • expansion du mot clé. [Safari uniquement, AvB]
  • transformer: modifie la réponse reçue par le serveur Web avant qu'elle ne soit renvoyée à Safari [ou à tout navigateur configuré pour utiliser le proxy fourni par GlimmerBlocker, AvB].

(On peut également l'utiliser pour inclure divers scripts Greasemonkey dans la réponse reçue, sans utiliser de module complémentaire Greasemonkey, par exemple pour bloquer Flash sans installer de module complémentaire.)

Arjan
la source
GlimmerBlocker est un outil intéressant, mais différent de ce que je recherche. J'ai réédité la description originale pour supprimer les exemples de réécriture et préciser que je ne fais que surveiller le trafic et non le transformer.
Doug Harris
2

Vous pouvez facilement configurer Fiddler pour Mac en utilisant Parallels conformément aux instructions fournies sur leur site.

Le seul inconvénient est que vous devez configurer manuellement vos paramètres réseau pour qu'ils pointent vers l'adresse IP de la machine virtuelle, mais pas vraiment.

aleemb
la source
7
Je n'appellerais pas cela "facilement" - cela nécessite l'achat et l'installation d'un serveur VM et d'un système d'exploitation totalement différent.
James Moore
J'ai 5 entrées dans cette info-bulle et une seule d'entre elles est au format IPv4. Lequel devrais-je choisir? :)
Alex Sorokoletov
1
Vous pouvez utiliser un logiciel de virtualisation gratuit, tel que VirtualBox d'Oracle, avec une machine virtuelle de modern.ie si vous souhaitez exécuter un système d'exploitation Windows (après 90 jours, il doit être réinitialisé). exécuter un proxy de débogage Web avancé
iX3
Si cette question était ouverte - quelqu'un devrait mentionner Fiddler pour Mac - telerik.com/download/fiddler en utilisant le framework Mono ...
Mars Robertson
Et cela ne fonctionne pas pour moi sous macOS
tom10271
1

jMeter pourrait également être utile; Il est conçu pour tester les performances de charge sur les serveurs Web, mais il peut toujours faire ce dont vous avez besoin. jMeter est écrit en Java, vous pouvez donc télécharger un fichier .jar qui s'exécutera sur Mac, Windows ou Linux.

Evie
la source
1

Cocoa Packet Analyzer est très utile.

actuosus
la source
4
Comment est-ce utile? Une version de notes de falaises de ce serait extrêmement utile
Journeyman Geek
L’analyseur de paquets de cacao a réussi à capturer le trafic HTTP, mais ne reconstruit pas la requête / réponse :(
Jean
1

Si vous avez affaire à un trafic d'applications ou à des intégrations d'API tierces qui passent par l'internet public, vous devriez essayer Runscope (dont la divulgation complète est un cofondateur). Il capture les requêtes HTTP vers n'importe quelle URL, vous offre une vue intéressante du flux pour le débogage et facilite le partage de requêtes individuelles avec d'autres.

John Sheehan
la source
0

Vous pouvez également essayer APIKitchen . Il vous aide à déboguer et à tester les API HTTP et toutes les demandes en général. Il existe également une version hors ligne à tester dans vos réseaux internes. Aucune installation nécessaire.

kontinuity
la source