Viel heiße Luft

Es gibt ja auch noch andere Shopbetreiber die bloggen. Und zumindest so tun, als würden sie der Community was zurückgeben.

Natürlich gilt es Chancengleichheit für alle Kollegen zu gewährleisten: wer die Präsentation ebenfalls haben möchte, schreibt mir einfach eine mail

Habe ich gemacht. Mehrmals. Und der Kollege auch. Reaktion: Keine. Auch Kommentare im ‘Blog’ werden ignoriert, indem sie einfach nicht freigeschaltet werden.

Da bleibt mir nur zu sagen: Put your money where your mouth is. Oder einfach keine leeren Versprechungen abgeben.

Der schnellste Erzgebirge-Palast, den es je gab.

Schnell ist der Erzgebirge-Palast ja eigentlich schon immer. Also spätestens seit Ende 2008, wo zum ersten Mal der Server etwas geschwächelt hat und ich viel optimiert habe. Seit dieser Zeit kommen auch die statischen Inhalte größtenteils von Amazons Cloudfront CDN. In den letzten Jahren hat es der Shop mit diesen Optimierungen in Google’s PageSpeed auf einen Wert von 95 (100 ist der Maximalwert) gebracht.

Ich habe auch viel dazu geschrieben, wie man mit einfachen Mitteln ähnliche Werte erreichen kann. Was ich nie erwähnt habe ist die Sache mit dem CDN, weil das schon eher Highlevel ist und weil mein bisheriger Workflow, Cloudfront war damals quasi frisch geschlüpft und konnte noch nicht wirklich viel, doch sehr umständlich ist:
Inhalte mussten auf Amazon S3 liegen, was man zwar mit einem Tool wie s3sync mehr oder weniger automatisieren kann, aber aufwendig ist es trotzdem. Und da ich lange Expire-Header nutze musste ich beispielsweise dem CSS immer ein Datum mitgeben, das ganze syncen und schließlich die Referenz im <head> auch noch anpassen. Nichts, was man irgendwem raten möchte, nachzubauen.

Beim Blättern in den Folien von Christian Schäfer kam mir dann der Gedanke, dass ich mir ja grad mal das PageSpeed-Resultat vom Shop anzeigen lassen könnte. Weiterhin 95, aber ein Punkt tauchte dort auf, der mich eigentlich schon immer nervt, seit ich auf das CDN umgestellt habe: Die CSS-Datei ist nicht gzip-komprimiert. Und wir reden hier von 65kB vs. 12kB! Aus dem Grund hatte ich da auch schon mal versucht, was zu bauen, was aber nie wirklich funktioniert hat (Datei bereits gezippt ablegen und mit entsprechendem Zusatzheader ausliefern). Kurz gegoogelt und darauf gestoßen, dass Cloudfront schon seit einiger Zeit ‘custom origin’ unterstützt. Das hat zwei Vorteile:

  1. Die Inhalte müssen nicht mehr wie bisher auf S3 liegen sondern können von einem beliebigen Webserver kommen.
  2. Header, die der Original-Webserver schickt, werden von Cloudfront genau so weitergegeben.

Man braucht dazu nur zwei Dinge:
Eine Domain, die cookieless arbeitet. Also einen vhost einrichten, der das selbe DocumentRoot hat wie der eigentliche Webauftritt und diesem sagen, dass er sämtliche Cookies verwerfen soll: Header unset Cookie.
Mit dieser Domain, nennen wir sie mal static.example.org, legen wir jetzt eine neue Distribution in Cloudfront an, geben an, dass die Header so übernommen werden sollen, wie sie von der Quelle kommen, warten einen Moment, bis das alles deployed ist und können das ganze dann wie bisher nutzen. Statt von S3 holt Cloudfront jetzt aber die Daten von unserem Server. Das passiert auch nur genau beim ersten Request, denn ab dann hat Amazon das ganze ja im Cache.

Damit kann man Cloudfront nicht nur mit gzip nutzen, sondern sogar mit mod_rewrite, denn die eigentlichen RewriteRules werden ja auf dem eigenen Server ausgeführt. Das eröffnet völlig neue Möglichkeiten und so hat mein CSS keinen von Hand eingetragen Datumsteil mehr, sondern einen dynamisch ausgelesenen Zeitstempel des letzten Modifikationsdatums:
http://cdn6.wstatic.com/templates/erzgebirge/styles-yui-min-1350656989.css

Wer sich übrigens dafür interessiert, wie ich das für xt:Commerce umgesetzt habe, dass die statischen Inhalte über Cloudfront ausgeliefert werden, möge dies bitte in den Kommentaren kundtun. Dann kann ich das auch mal in einem Artikel entsprechend aufbereiten.

Was das ganze gebracht hat sind zwei weitere Punkte auf der Skala: 97 von 100. Der Rest liegt nicht mehr wirklich in meiner Macht, außer, ich würde Google Analytics, olark und die SSL-Logos rauswerfen.

Ein Paypal-Account, mehrere Shops, verschiedene Logos

Ein Paypal-Account, mehrere Shops, verschiedene Logos

Der Titel ist zugegebenermaßen etwas sperrig. Bei Elmastudio ist gestern ein Artikel erschienen, wie man die Paypal-Bezahlzeite etwas individualisieren kann.
Hat man jetzt mehrere Shops auf einem Paypal-Account laufen muss man sich aber nicht zwingend für das Logo der ‘Dachgesellschaft’ entscheiden, das der Kunde vermutlich gar nicht kennt und eher vorsichtig skeptisch reagiert. Denn man kann für das Paypal Standard Payment über entsprechende Parameter das gewünschte Logo mitgeben:

cpp_header_image
ist die max. 750×90 Pixel große Kopfgrafik
cpp_logo_image
ist das max. 190×60 Pixel große Logo

Bei cpp_logo_image muss man darauf achten, dass die übergebene URL maximal 127 Zeichen lang sein darf. Wer also bereits http://www.verein-zur-erhaltung-historischer-feuerwehrfahrzeuge-und-geraete.de/ 1 als Domain hat sollte sich bei Pfad und Bildnamen eher kurz halten.

Und so sieht das dann aus:




1 Wer meint, den Fehler gefunden zu haben, kann sich ja mal in den Kommentaren melden. Ich überleg mir was schönes.

Kellermeister mit Weinasche

Ich arbeite gerade an einem neuen Shop und dem Kollegen auf seinem Ubuntu 10.10 ist dabei aufgefallen, dass Buchstaben fehlen. Das Produkt heißt dann eben nicht mehr Kellermeister mit Weinflasche, sondern Kellermeister mit Weinasche und auch nicht Hirt mit Vogelkäfig, sondern Hirt mit Vogelkäg.

Ziemlich eindeutig ein Problem mit Ligaturen. Ich hab’s dann erstmal auf Linux geschoben und ignoriert. Dann hat mich aber doch der Ehrgeiz gepackt. Das ganze auf Firefox als schuldigen eingegrenzt und tatsächlich auf einen alten Beitrag von Peter Kröner gestoßen. text-rendering: optimizeSpeed; bringt dann auch das gewünschte Ergebnis unter Ubuntu 10.10 und der Käfig heißt nicht mehr Käg. Die Gegenkontrolle im Firefox auf dem Mac zeigt, dass das Problem weiterhin besteht, also die Lösung von Peter nur auf alte Firefox-Versionen eine Auswirkung haben. Will man auch den aktuellen Versionen diese Unart austrieben braucht man noch zusätzlich:

-moz-font-feature-settings: "liga=0";

Das schaltet die Ligaturen dann wirklich ab. Das Problem scheint nur bei manchen Webfonts aufzutreten, bei denen von Google konnte ich es bislang nicht beobachten, bei der hier verwendeten LHF Hensler von Letterhead Fonts hingegen schon.

Webseiten-Infektion mit gestohlenen Plesk-Passwörtern

Oder auch: The Sicherheitslücke strikes back. Im März machten Meldungen die Runde, dass eine Lücke im Plesk-Admin dazu genutzt werden konnte, um administrativen Zugriff auf das System zu erhalten. Wie sich jetzt zeigt hätte Plesk den Hinweis, doch man nach dem Einspielen des Patches alle Passwörter zu resetten, wesentlich plakativer auf die Seite schreiben sollen.

Wieso? Während wir uns vor kurzem noch darüber kaputt gelacht haben, dass LinkedIn Passwörter mit SHA1 ohne Salt verschlüsselt geht Plesk noch einen Schritt weiter, um es dem Angreifer möglichst einfach zu machen: Sie verschlüsseln die Passwörter erst gar nicht (bzw. erst seit Version 11). Wer also gedacht hat, dass das Problem mit dem Einspielen des Patches aus der Welt sei, weil eventuell gestohlene Passwörter ja erst geknackt werden müssten: Think again.
Besitzer von Plesk bis zur Version 10 können zur Beweisführung folgendes machen:

cat /etc/psa/.psa.shadow

präsentiert das Root-Passwort für die MySQL-Datenbank (das auch gleichzeitig das Admin-Passwort für Plesk ist) im Klartext. Und das ist nicht einmal ein Geheimnis, in der Plesk-KB wird genau das als Lösung beschrieben, sollte man mal sein Passwort vergessen haben!
Und auch sämtliche Passwörter für das Admin-Panel stehen unverschlüsselt in der Datenbank. Wer also einen Blick in psaaccounts wirft sollte sicherstellen, dass er sitzt.

Passwörter, die durch die Lücke im März gewonnen wurden, werden derzeit aktiv genutzt, um Webseiten zu kompromitieren. Aktuell wohl überall mit dem gleichen Schadcode, der in php, asp(x), html und js-Dateien eingefügt wird und bislang noch ziemlich eindeutig daran zu erkennen ist, dass er zwischen den Kommentaren /*km0ae9gr6m*/ und /*qhk6sa6g1c*/ eingeschlossen ist.
Da der Angriff über den Plesk-Admin stattfindet zeigen sich in den Logfiles der betroffenen Webauftritte keinerlei Auffälligkeiten. Die findet man aber in den Plesk-Access-Logs unter /usr/local/psa/admin/logs/ bzw. im Activity-Log, das man sich über die Plesk-Oberfläche laden kann. Aus letzterem geht auch hervor, mit welchem Benutzernamen zugegriffen wurde. Anders als bei UnmaskParasites aber vermutet gehe ich von automatisierten Angriffen aus, die Einträge im Log sind viel zu dicht beieinander als das da jemand manuell klicken würde.

Abhilfe

Nach meinem aktuellen Kentnisstand wird außer dem Einschleußen des Codes nichts weiter mit dem Server gemacht – obwohl man quasi alle Möglichkeiten hätte.

  • Zunächst gilt es also, sofern noch nicht geschehen, den Patch einzuspielen.
  • Danach durchsucht man den Server nach infizierten Dateien und säubert diese. Unter Linux kann man dazu grep und sed benutzen. Unter Windows wird man um eine Analyse des Plesk-Access-Logs nicht herumkommen.
  • Abschließend setzt man alle Passwörter zurück. Von Plesk gibt es ein entsprechendes Script.

Zusätzlich kann man noch folgendes machen:

  • Wer die Netze, von denen Zugriffe auf den Plesk-Admin erfolgen, klar definieren kann, kann den Zugriff auf dem Admin entsprechend einschränken: EinstellungenAdministratorzugriff einschränken.
  • Den Plesk-Admin mit einem serverseitigen Passwortschutz versehen. Eine entsprechende Anleitung findet sich hier.

Relaunch Weingut Apotheker Bartz

Den ein oder anderen Kontakt von meiner Zeit an der Mosel habe ich ja noch und manch einer ist auch noch Kunde. Wie das Weingut Apotheker Bartz. Und für die Homepage stand jetzt der Relaunch an.

Es galt nicht nur, das alte Layout durch ein neues, frisches und gleichzeitig edel aussehndes optisches Erscheinungsbild zu ersetzen, sondern auch die im Hintergrund werkelnde veraltete Technik mit Frames endlich ins 21. Jahrhundert zu bringen. Darüber hinaus musste noch der Shop mit übernommen werden, der technisch nicht modifiziert wurde und noch aus einer Zeit stammt, in der php4 der letzte heiße Scheiß war. Legacy-Code wie aus dem Bilderbuch quasi.

Als technische Grundlage wurde WordPress gewählt, die Texte wurden aus dem bestehenden Auftritt übernommen. Für den Shop wurde ebenfalls ein der neuen Optik angepasstes Template entwickelt.

Gehostet wird auf Uberspace und damit ist es mein erstes Kundenprojekt dort. Ich bin jedes Mal wieder begeistert vom Uberspace-Hosting. Es fühlt sich etwas an wie zu seligen Bürgernetzzeiten. Alles ist da, man kann sich fast nach belieben austoben, darüber hinaus ist alles spitzenmäßig dokumentiert und selbst den Legacy-Code vom Shop zum laufen zu bekommen, war, inklusive dem Nachinstallieren diverser PEAR-Pakete, so unglaublich einfach und schmerzfrei, man muss es selber gemacht haben, um es zu glauben.

Umziehen Part 4: Richtiges Zertifikat für den Proxy

Beim Umzug des Erzgebirge-Palastes ist noch etwas aufgefallen, das ich bislang im Rahmen der Umzugsservice-Reihe noch nicht behandelt hatte:

Wenn die umzuziehende Seite (auch) unter https erreichbar ist muss der Proxy ebenfalls mit dem richtigen Zertifikat ausgestatt sein. Glücklich, wer noch eine IPv4-Adresse frei hat. Ansonsten hagelt es Fehlermeldungen. Bedenken sollte man auch, dass es hinter dem Proxy unverschlüsselt weitergeht, ein solches Vorgehen ist also nur wirklich angebracht, wenn man sich anschließend in einer vertrauenswürdigen Umgebung bewegt.

Kostenlose Icons von Versandunternehmen

Quasi als kleines Zusatzprojekt zu den Payment-Icons gibt es jetzt auch Icons für die gebräuchlichsten Versanddienstleister.

Update v10

Auch dieses kleine Projekt feiert in Kürze seinen fünften Geburtstag. Als vorgezogenes Geburtstagsgeschenk gibt’s daher heute einen kleinen Speditionsrundumschlag.
Von der Wunschliste kommt Schenker. Also eigentlich ja DB Schenker. Da ich aber ein großer Fan des grün/gelben Schenker-Designs bin und das charakteristische S (früher mit, später dann ohne Weltkugel) jahrzehntelang das Straßenbild in ganz Europa geprägt hat habe ich noch ein paar Hertige-Icons mit dazugepackt.
Und weil ich eh grad bei den Speditionen war wurde das noch mit Dachser und Kühne+Nagel ergänzt.
Kostenlose PNG-Icons für Versandunternehmen (v10) (zip, 3.4MB)

Enthaltene Icons:
DB Schenker
DB Schenker (alternativ)
Schenker Hertiage
Schenker Hertiage II
Schenker Hertiage III
Dachser
Dachser (alternativ)
Dachser (alternativ II)
Dachser (alternativ III)
Dachser (alternativ IV)
Kühne+Nagel
Kühne+Nagel (alternativ)
Kühne+Nagel Anker
Kühne+Nagel Anker (alternativ)

Update v9

Das meiste in diesem Update ist gar nicht von mir sondern von Christin. Vielen Dank dafür. Von mir ist nur das bestellte DHL Freight und die neuen UPS-Logos. Außerdem, weil immer wieder bestellt, ein UPS-Logo mit zusützlichem Express-Schriftzug.

Enthaltene Icons:
DHL Freight
UPS
UPS Express
UPS Express (altes Logo)
Air New Zealand
Fastway Couriers
GEL
NOX Nachtexpress
Night Star Express
Tiramizoo (Großstadt-Direkt-Kurier)

Update v8

So 25-Stunden-Tage haben schon ihre Vorteile, man kommt mal zu Sachen, die sonst liegen bleiben. Und daher gibt es heute ein kleines Update.

Enthaltene Icons:
Asendia
Asendia (alternativ)
postnl (Niederlande)
Südmail
Südmail (alternativ)
bpost (Belgien)

Update v7

Neben den sich angesammelten Länder-Logos hat dieses Update vor allem einen Grund: Die Neugestaltung des dpd-Logos.

Enthaltene Icons:
DPD
DPD Express
Azərpoçt (Aserbaidschan)
Correos (Spanien)
Makedonska Posta (Mazedonien)

Update v6

Drei neue Länder sind heute im Programm und ein paar generische Icons, die man beispielsweise für Versand nach Zonen oder tabellarischen Versand verwenden kann.

Enthaltene Icons:
Versand nach Zonen
Versand nach Zonen (alternativ)
Tabellarische Versandkosten
Abholung
Lietuvos Paštas (Litauen)
El Correo (Guatemala)
Posta Kenya

Update v5

Und weiter geht die Reise um den Erdball. Ich habe mittlerweile Zugriff auf die Track&Trace-API von DHL und da kann man noch viel weiter zurückgehen als auf der Website. Dadurch bin ich noch auf ein paar mehr Länder gestoßen, die für die Integration in die Warenwirtschaft natürlich ein Logo brauchen.

Enthaltene Icons:
PTT (Türkei)
Korea Post
OPT (Französisch-Polynesien)
Pos Indonesia
Saudi Post
Emirates Post Group
Vietnam Post
Liban Post
Japan Post
Pos Malaysia
Correo Argentino
Taiwan Post

Update v4

Eine kleine postalische Reise um die Welt. Wir versenden primär mit DHL, d.h. im Zielland übernimmt dann der lokale, meist (ex-)staatliche Betrieb, die Sendung. Von der DHL gibt es dann einen sog. Matchcode und man kann, zumindest in der Theorie, die Sendung dann weitertracken. Genau das habe ich in unsere neue Warenwirtschaft implementiert und dazu braucht es natürlich auch passende Icons. Außerdem enthält das Update das schon länger bestellte DHL-Express-Icon.

Enthaltene Icons:
United States Postal Service
Correios (Brasilien)
South African Postal Service
Thailand Post
Russian Post
Singapore Post
New Zealand Post
Correos de México
India Post
Israel Post
Hong Kong Post
Correos del Ecuador
4-72 (Kolumbien)
China Post
Correos Chile
Australian Post
Post Canada
DHL Express

Update v3

Die per E-Mail eingegangen Wünsche finden sich in diesem Update.

Enthaltene Icons:
General Overnight
TNT Express
GLS Express
DPD Express
Trans-o-flex
Trans-o-flex (alternativ)

Update v2

Auch die Versandicons gehen in die zweite Runde und werden ergänzt um die österreichische und schweizer Post.

Enthaltene Icons:
Österreichische Post
Österreichische Post (alternativ)
Schweizer Post

Release

Format:
PNG, 512px
Enthaltene Icons:
DHL
DPD
GLS
UPS
FedEx
TNT
Hermes
Deutsche Post

Weiterentwicklung

Ich glaube, dass auch diese Icons für viele Shopbetreiber hilfreich sind. Mir ist aber auch klar, dass es weitere Versandunternehmen gibt, die noch nicht berücksichtigt sind. Gerne füge ich weitere Logos hinzu. Dazu einfach einen Kommentar hinterlassen oder mich über das Kontaktformular kontaktieren.

Lizenz

Die Icons sind kostenlos für private und kommerzielle Nutzung und stehen unter der CC BY Lizenz.
Das Copyright der einzelnen Logos liegt bei den jeweiligen Gesellschaften.

Download

Kostenlose PNG-Icons für Versandunternehmen (v10) (zip, 3.4MB)

Page 1 of 612345...Last »