Zum Inhalt springen

Archiv für das Tag "php"

Syndicate some Blogposts from WordPress to Kirby with the REST API - Revisited

One year ago I established a connection between some blog posts here to my portal site via the WordPress REST API, a cron job, and some php-scripts.

This weekend I revisited the code, since there was one detail that kind of bugged me: The REST API treats "categories" as an OR condition; but for my use case I wanted an AND condition. I only want to show posts that have a combination of categories, like "english" AND "webdesign", but the API returns all posts having one of the two categories.

I have updated my portal site to the new Kirby 3 version recently, and that needed little tweaks here and there, and so I had a look at the blog teasers code. After reading the WordPress REST API documentation (again), I think there is no way to get this AND condition I wanted, so I had to refactor the code on the other end.

Dominant Color in an image

Inspired by this great blog post by Manuel Wieser, I made a php script to find the dominant color in an image, and create a data-url containing a colored "spacer" gif.

The hardest part was to figure out how the node.js "buffer" functions compare to php's "pack" function. For all the other cryptical stuff about what's needed to create a small gif on the fly, see the post linked above.
For my demo I wanted not only the blank gif, but also the background to appear in the image's dominant color.
Because darker background colors would clash with the text ...

PIWIK Update

Ich habe gerade die Webseiten-Statistik-Auswertungs-Weichware meiner Wahl (PIWIK) auf die neue Version 2.0.2 aktualisiert.

Da diese neue Version von PIWIK selbst als großer Schritt (neues Erscheinungsbild, neue Features und überhaupt alles viel toller als vorher ;-)) bezeichnet wird, habe ich eine Weile gewartet, bevor ich mich zum Aktualisierungsschritt durchgerungen habe. Die Systemvoraussetzungen waren auf meinem ausgelatschten Webspace auch nicht mehr gegeben, ich musste erstmal auf PHP Version 5.3 oder höher aktualisieren. Zum Glück ist das bei der Domainfactory recht einfach auf Domainbasis zu machen, so musste ich nur einige wenige Webseiten durchchecken, ob sie mit der Version 5.4 ...

Google Conditional Hack, Teil 3

The saga continues… (siehe voriges Post)

Nachdem der Server nun gesäubert und unter genauer Beobachtung steht, konnten wir heute früh sehr zeitnah einen der Hacks verfolgen. Leider ist immer noch nicht klar, wie die Angreifer es schaffen, Dateien auf dem Server zu plazieren oder zu modifizieren, aber jetzt ist klarer, wie der Angriff (oder zumindest eine Variation) läuft.

Innerhalb von wenigen Sekunden wurden innerhalb der htroot zwei php Dateien in unterschiedlichen Verzeichnissen erzeugt, die harmlos-nichtssagende Namen haben und wahrscheinlich bei oberflächlicher Betrachtung nicht weiter auffallen würden, eine "common.php" gibts ja immer irgendwo ;-). Diese Dateien enthielten nichts weiter als mit ...

Google Conditional Hack, Teil 2

Neben dem Script, welches dann schlussendlich den Viagraspamcode ausgibt (siehe neulich), werden noch weitere Scripte in die PHP-Dateien injiziert, diese fungieren dann als Backdoor, um beliebigen (php) Code auszuführen.

Damit das klappt, muss der Code quasi "auf Zuruf" ausgeführt werden. Eine Version, die ich gefunden habe, arbeitet mit eval(); in Verbindung mit base64_decode();, eine andere in Verbindung mit gzinflate(); und noch eine mittels str_rot13();.

Die, die mir am meisten Kopfzerbrechen machte, arbeitet mit preg_replace();, in Verwendung mit dem (bösen!) "e"-Modifier  - d.h. das Ergebnis der Ersetzung wird direkt ausgeführt. Ersetze also irgendeinen String mit einem Funktionsaufruf und *bam* - Code ...

Google Conditional Hack

Das Wochenende habe ich damit verbracht, mich über eine relativ neue Art von Hack schlau (naja) zu machen, den "google conditional hack": Irgendwann letztes Jahr tauchten vermehrt Seiten auf, die bei einem normalen Besuch mit dem Webbrowser ganz normal aussahen, sobald sie jedoch mit einem User-Agent-String, der auf einen Suchmaschinen-Bot schliessen ließ, besucht wurden, zeigten sie auf einmal jede Menge Viagra- und anderen Medikamentenspam inklusive Links, die allerdings auf weitere Seiten innerhalb der Website verwiesen, wo dann ebenfalls Viagraspam auftauchte.

Das Perfide an diesem Hack: Man merkt zunächst nicht, dass die Seite betroffen ist, für normale Besucher sieht alles ...

WordPress: Artikelzusammenfassung und -Bild für Facebookverlinkung

Mal wieder ein kleiner Exkurs in den Maschinenraum.

Facebook bietet mit dem OpenGraph Protokoll ein Werkzeug für Webseitenbetreiber, um die Inhalte der Seite für Facebook nutzbar zu machen. Ob man das wirklich möchte, muss sich jeder selbst überlegen, aber Fakt ist, dass FB mittlerweile so in den Alltag der meisten Netzbenutzer eingebunden ist, dass man sich damit auseinandersetzen muss.

Wenn eine FacebookbenutzerIn einen teilenswerten Inhalt/Artikel hier im Blog findet, wird sie die URL des Artikels in das "Link teilen" Feld eintragen und abschicken (oder den "Share This" Kram von Facebook benutzen, den ich hier aber nicht auf der Seite ...

Auf den Hund gekommen

Aha... auch bei php hat man einen Kasper gefrühstückt:

Wie jetzt erst bekannt wird, haben die Entwickler obskure Bilder darin versteckt - die sich auf jeder PHP-Website aufrufen lassen.(...)

- Netzzeitung.de
Durch einfaches hinzufügen eines Query-Strings beim Aufrauf einer beliebigen php-Seite werden u.a. Hundebilder sichtbar.
Habs gerade ausprobiert, es funktioniert wirklich.