Support kontaktieren

Wir melden uns per E-Mail. Meist innerhalb von zwei Tagen.

Zum Schutz vor Missbrauch prüft Google reCAPTCHA diese Einsendung. Dabei werden Daten an Google übertragen. Das Skript wird erst geladen, wenn Sie dieses Formular öffnen.

← Alle Beiträge

Als „pl“ zwei verschiedene Dinge bedeutete

Am 19. August 2026 haben wir .htaccess um eine Regel ergänzt, die eine Klasse von Dateien blockiert, die niemals direkt an einen Browser ausgeliefert werden sollte: übrig gebliebene Quellcode-Kopien, die nach einer Bearbeitung im Web-Root liegen geblieben sind — index.php.bak, ein verirrtes config.py, alles mit einer Skript-Endung, bei dem ein Besucher den Quelltext als reinen Text abrufen könnte, statt ihn auszuführen.

Die Regel griff nach Dateiendung: .php, .py, .rb, .pl und ein Dutzend weitere. .pl steht für Perl. Dieses Projekt enthält nicht eine einzige Zeile Perl — die Regel war vorsorglich, keine Korrektur für eine Datei, die es tatsächlich gab.

Etwa einen Tag später meldete ein Besucher, dass die Zähler-Vorschauen kaputt seien. Jede einzelne davon, aber nur in einer Sprache.

Das andere „pl“

stats4u.net wählt die Sprache je Besucher über Accept-Language-Aushandlung, nicht über eine feste Standardsprache — ein Browser mit polnischer Einstellung bekommt direkt /pl/ ausgeliefert, ohne Weiterleitung, und Englisch ist das, worauf die Seite zurückfällt, wenn nichts passt. Polnisch trifft häufig zu: genug Besucher landen dort, dass ein Tag mit kaputten Vorschaubildern nicht lange unbemerkt bleiben konnte.

Jede Design-Vorschau ist eine kleine Datei pro Stil und Sprache: cache/preview/2900.pl.svg. Das Muster, das something.pl — ein Perl-Skript — abfangen sollte, traf auch auf 2900.pl gefolgt von .svg zu: eine Stilnummer, ein Sprachcode, der zufällig genauso geschrieben wird wie eine Skript-Endung, dann der eigentliche Dateityp. Ein Punkt-pl-Punkt-Muster kann die beiden nicht auseinanderhalten.

Jede .pl.svg- und .pl.png-Vorschau in der Galerie antwortete plötzlich mit 403 Forbidden. Jede andere Sprache blieb unberührt, weil kein anderer Sprachcode, den diese Seite verwendet, mit einem Eintrag auf der Endungsliste kollidiert. Nur dieser eine.

Was sich geändert hat

pl ist aus der Endungsliste herausgenommen worden. Die Regel blockiert weiterhin jede echte Skript-Endung, um die sich dieses Projekt zu Recht Sorgen machen muss; sie blockiert keine Sprache mehr.

Es lohnt sich, das aus dem Grund festzuhalten, aus dem es überhaupt passiert ist: Eine Liste von Dateiendungen und eine Liste von Sprachcodes stammen aus zwei verschiedenen Vokabularen, und nichts hindert einen zweibuchstabigen Eintrag daran, beides gleichzeitig zu bedeuten. Bevor man auf einer Seite mit Sprachpräfixen im Pfad zu einer der beiden Listen etwas hinzufügt, sollte man es gegen die andere prüfen. Wir haben das nicht getan, und es brauchte einen Leser, der kaputte Vorschaubilder bemerkte — nicht unsere eigene Überwachung — um es aufzudecken.