User-Agent Filter fürs Debuggen
Letztens stand ich vor dem Problem an einer Webanwendung, die schon im
Produktivbetrieb war, debuggen zu müssen. Der offensichtliche Weg wäre wohl
gewesen einen GET Parameter wir z.B. ?debug
an die URL anzuhängen und
damit die Debugausgaben zu erhalten. In diesem Fall sollte aber die
Verarbeitung von GET Parametern überprüft werden, also schied dieser Weg aus.
Ich hätte auch alles in eine Datei loggen können, aber die Lösung die ich am Ende eingeschlagen habe war folgende: In der Anwendung wird der User-Agent des Clients überprüft, hat dieser einen speziellen Wert, z.B. "my-user-agent", werden die Debugausgaben angezeigt, ansonsten nicht. Diese Methode beeinträchtigt den Produktivbetrieb so gut wie gar nicht und wenn der User-Agent entsprechend kryptisch gewählt wird, ist die Chance, dass jemand dieses durch Zufall trifft sehr gering.
In PHP sieht das ganze ungefähr so aus:
if($_SERVER['HTTP_USER_AGENT'] == "my-user-agent") { var_dump($var_to_debug); }
Nach dem var_dump()
könnte man natürlich noch die weitere Abarbeitung mit
die()
oder exit()
abbrechen.
Abfragen mit selbst gesetztem User-Agent stellt man entweder mit seinem
Browser der Wahl, oder einfach mit curl
oder wget
, z.B. so:
curl --user-agent my-user-agent http://server/path/
Diesen Post von mir gibt es auch auf englisch im SpyBlog.