{"id":14,"date":"2008-09-21T13:39:19","date_gmt":"2008-09-21T11:39:19","guid":{"rendered":"http:\/\/www.butschek.de\/?p=10"},"modified":"2012-03-11T12:12:56","modified_gmt":"2012-03-11T11:12:56","slug":"urldecode-shell","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2008\/09\/21\/urldecode-shell\/","title":{"rendered":"urldecode auf der Shell"},"content":{"rendered":"

\"\"<\/a>Wer hin und wieder schon mal in einem Apache-Log die Referer<\/a> durchsucht hat, kennt das Problem mit der Zeichenkodierung<\/a>: Sonderzeichen werden als zweistellige hexadezimale Zeichen mit vorangestelltem Prozentzeichen dargestellt. Aus ‚W\u00f6rter mit \u00c4h, \u00dch und \u00d6h‘ wird so schnell ein ‚W%F6rter+mit+%C4h%2C+%DCh+und+%D6h‘, was f\u00fcr den Admin wirklich schwer zu lesen sein d\u00fcrfte.<\/p>\n

Eine ganz einfache M\u00f6glichkeit der Umwandlung bietet Perl durch die M\u00f6glichkeit, die Suchergebnisse eines regul\u00e4ren Ausdrucks durch eine Callback-Funktion<\/a> zu schicken:<\/p>\n

echo 'W%F6rter+mit+%C4h%2C+%DCh+und+%D6h'\r\n  | perl -pe 's\/%([A-Fa-f0-9]{2})\/pack(\"C\", hex($1))\/seg'<\/pre>\n

Nur die Pluszeichen (welche f\u00fcr Space eingesetzt werden) bleiben bestehen, das erschwert die Lesbarkeit jedoch kaum. Falls es doch st\u00f6rt, einfach das Ergebnis nochmal durch ‚tr<\/a>‚ schicken…<\/p>\n","protected":false},"excerpt":{"rendered":"

Wer hin und wieder schon mal in einem Apache-Log die Referer durchsucht hat, kennt das Problem mit der Zeichenkodierung: Sonderzeichen werden als zweistellige hexadezimale Zeichen mit vorangestelltem Prozentzeichen dargestellt. Aus ‚W\u00f6rter mit \u00c4h, \u00dch und \u00d6h‘ wird so schnell ein ‚W%F6rter+mit+%C4h%2C+%DCh+und+%D6h‘, was f\u00fcr den Admin wirklich schwer zu lesen sein d\u00fcrfte. Eine ganz einfache M\u00f6glichkeit […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[45,54,66,78],"_links":{"self":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/14"}],"collection":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":2,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/14\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/14\/revisions\/668"}],"wp:attachment":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media?parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/categories?post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/tags?post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}