htprobe

command module
v0.0.0-...-51fe4c8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: GPL-3.0 Imports: 1 Imported by: 0

README

htprobe - Web Request Analyzer

Das CLI-Programm htprobe dient zur Analyse von Webrequests auf der Kommandozeile. Oft ist es wichtig, schnell einer Redirect-Kette zu folgen, ein Zertifikat zu überprüfen oder die zurück gesendeten Header zu untersuchen. Natürlich können das auch alle modernen Browser mit Hilfe ihrer jeweiligen Entwickler-Tools - aber manchmal ist es auf der Kommandozeile einfach schneller.

Screenshot

Syntax

Der Aufruf von htprobe geschieht so:

$ htprobe <subcommand> URL [URL ...][flags]

Die optionalen globalen Flags können überall auf der Kommandozeile nach htprobe angegeben werden, Flags, die zu einem Subkommando gehören, aber erst nach diesem Kommando. Mit dem Subkommando help oder dem Schalter -h|--help kann jederzeit eine Hilfe angezeigt werden, mit

$ htprobe <subcommand> --help

die Hilfeseite für ein bestimmtes Subkommando.

Die verfügbaren Module sind:

  • certificate: Analysiert Server-Zertifikate und zeigt sie an
  • completion: Erzeugt die Autovervollständigung für die vorgegebene Shell
  • content: Führt einen Webrequest durch und zeigt den Inhalt an, falls vorhanden.
  • cookies: Zeigt die Request- und Response-Cookies eines Webrequests
  • headers: Zeigt die Request- und Response-Header eines Webrequests
  • help: Zeigt die Hilfe von htprobe oder eines Subkommandos an
  • redirects: Folgt der Redirect-Kette eines Webrequests und zeigt sie an

Installation

htprobe ist in Go geschrieben. man benötigt daher eine funktionierende Entwicklungsumgebung für diese Sprache. Hinweise zur Installation und einen Downloadlink für die verschiedenen Plattformen finden sich auf der Webseite von Go.

Sofern alles erfolgreich installiert wurde, sollte dieser Befehl funktionieren:

$ go version
go version go1.22.2 linux/amd64

Danach muss dieses Repository geklont werden und Programm kompiliert werden:

$ git clone https://github.com/hleinders/htprobe.git
$ cd htprobe
$ go mod tidy
$ go build     # or go install, if GOBIN is set

Beispiele

Rufe nasa.gov auf und zeige die Redirect-Kette an:
$ htprobe redirects nasa.gov

URL: http://nasa.gov  [GET]
       ┣━━ (301) ⮕  [GET] https://nasa.gov/
       ┣━━ (302) ⮕  [GET] https://www.nasa.gov/
       ┗━━ (200) ⮕  200 OK

Untersuche die Header im letzten "Hop":
$ htprobe headers https://www.nasa.gov/

1:  URL: https://www.nasa.gov/  [GET] (200)
═══════════════════════════════════════════

     Request Header:
     • User-Agent: HtProbe Request Analyzer v1.2 (2024-04-05)

     Response Header:
     • Accept-Ranges: bytes
     • Age: 89
     • Cache-Control: max-age=300, must-revalidate
     • Content-Type: text/html; charset=UTF-8
     • Date: Thu, 04 Apr 2024 09:31:54 GMT
     • Host-Header: a9130478a60e5f9135f765b23f26593b
     • Server: nginx
     • Strict-Transport-Security: max-age=31536000
     • Vary: Accept-Encoding
     • X-Cache: hit
     • X-Launch-Status: Go Flight!
     • X-Rq: hhn1 85 188 443

Zeige die Zertifikatsinformationen:
$ htprobe certificate https://www.nasa.gov/

1:  URL: https://www.nasa.gov/  [GET] (200)
═══════════════════════════════════════════

     Certificate(s):
     • CN:          nasa.gov
       SANs:        nasa.gov, www.nasa.gov
       Valid until: 2024-06-25 13:02:10 +0000 UTC
       CA-Chain:    nasa.gov
       ⋘  R3 (Let's Encrypt)

Aliase

Ich persönlich benutze folgende Aliase in meiner Shell:

alias checkRedirects="htprobe redirects"
alias checkHeader="htprobe headers"
alias checkCert="htprobe certificate"
alias checkCookies="htprobe cookies"

Damit kann man die obigen Aufrufe ein wenig vereinfachen, zum Beispiel:

$ checkRedirects nasa.gov

URL: http://nasa.gov  [GET]
       ┣━━ (301) ⮕  [GET] https://nasa.gov/
       ┣━━ (302) ⮕  [GET] https://www.nasa.gov/
       ┗━━ (200) ⮕  200 OK

$ checkCert https://www.nasa.gov/

1:  URL: https://www.nasa.gov/  [GET] (200)
═══════════════════════════════════════════

     Certificate(s):
     • CN:          nasa.gov
       SANs:        nasa.gov, www.nasa.gov
       Valid until: 2024-06-25 13:02:10 +0000 UTC
       CA-Chain:    nasa.gov
       ⋘  R3 (Let's Encrypt)

Shell Completion

Die meisten modernen Shells (bash, zsh, ...) haben die Fähigkeit, Programme und deren Subkommandos oder Parameter automatisch zu vervollständigen. Den entsprechenden Code erhält man mit

$ htprobe completion zsh

Die kann man automatisieren, z.B. für die zsh, in dem man in der $HOME/.zshrc folgende Zeile einfügt:

source <(htprobe completion zsh)

Documentation

Overview

Copyright © 2024 Dr. Harald Leinders <harald@leinders.de>

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL