Betrieb
Sicherheit
Der Kurz-Link selbst
Ein zufälliger Slug ist 7 Zeichen aus einem Vorrat von 32 (23456789abcdefghijkmnpqrstuvwxyz)
— rund 3,4 · 10¹⁰ Möglichkeiten. Ausgeschlossen sind 0, 1, l, o und
Großschreibung: Ein Shortlink wird vorgelesen, abgetippt und gedruckt, und das sind die
Verwechslungen, die tatsächlich passieren.
Ein Slug ist keine Zugangsbeschränkung. 7 Zeichen sind gegen gezieltes Durchprobieren nicht viel, und ein selbst gewählter Slug (
sommeraktion) ist erratbar. Wer den Zugang beschränken will, setzt ein Passwort — das ist der dafür gebaute Weg.
Aufgelöst wird case-insensitive: /ABC23DE erreicht /abc23de. Ein Empfänger, der die
Adresse von einem Plakat abtippt, achtet nicht auf Groß- und Kleinschreibung.
Schutz vor Missbrauch der Weiterleitung
-
Nur
httpundhttps. Andere Schemata werden abgelehnt. -
Zugangsdaten in der Adresse werden abgelehnt, nicht entfernt.
https://kunde.de@boese.example/führt zuboese.example— ein Mensch liest den Teil davor als Host. Solche Eingaben sind kein Versehen. -
Höchstlänge 2000 Zeichen, keine Steuerzeichen.
-
Die Ziel-Prüfung greift auf IP-Ebene, nicht auf Namensebene. Bei jedem Sprung der Weiterleitungskette werden die aufgelösten Adressen gegen private und reservierte Bereiche geprüft:
10/8,172.16/12,192.168/16,127/8,169.254/16, dazu CGNAT100.64/10,192.0.0.0/24,198.18/15, Multicast224/4undff00::/8. IPv4-in-IPv6 wird ausgepackt und in beiden Formen geprüft.Der Grund: Ein öffentlicher Hostname darf völlig legitim auf
10.0.0.5zeigen. Wer den Namen prüft statt der Adresse, hinterlässt einen Portscanner für das eigene Netz — mit einem Kurz-Link als Steuerung. -
Die Prüfung schickt eine eigene Kennung ohne die Adresse dieser Installation. Ein fremder Server soll nicht erfahren, wo er nachgesehen wurde.
Anmeldung und Drosselung
Fünf Fehlversuche pro Adresse und IP-Adresse sperren die Anmeldung für eine Minute. Passwörter werden mit bcrypt gespeichert. „Passwort vergessen" antwortet immer gleich, unabhängig davon, ob es die Adresse gibt — sonst wäre die Maske ein Werkzeug zum Aufspüren vorhandener Konten.
Gedrosselt sind alle öffentlichen schreibenden Wege, aber nicht die Weiterleitung selbst: Eine Drosselung darauf träfe genau das, was der Dienst tun soll. Deshalb sind die Freischaltung eines passwortgeschützten Links (10 Versuche in 10 Minuten) und der Weiter-Knopf der Vorschauseite (30 in 10 Minuten) eigene, gedrosselte Routen.
Die Vorschauseite
Sie nimmt die Verschleierung zurück, die ein Kürzungsdienst zwangsläufig erzeugt — und zwar dann, wenn sie nicht gewollt war. Vier Eigenschaften sind Absicht:
- Kein anklickbarer Verweis auf das Ziel, sondern ein
POST-Knopf. Ein Anker liefe an der Zählung vorbei und gäbe Crawlern etwas zu folgen. Die vollständige Adresse steht als auswählbarer Text da: lesbar, markierbar, kopierbar — aber nicht versehentlich anklickbar. - Keine automatische Weiterleitung, kein Zähler, kein Meta-Refresh. Eine Seite, die von selbst weitergeht, ist keine Warnung, sondern eine Verzögerung.
Referrer-Policy: no-referrerauf der Antwort.- Der Grund steht dabei. Eine Vorschauseite ohne Begründung ist eine Hürde, die man wegklickt. Der Ton ist bewusst neutral: Der häufigste Grund („liegt auf einer anderen Domain") trifft völlig harmlose Links, und wer dort warnt, wo nichts zu warnen ist, erzieht seine Besucher zum Wegklicken.
Alle öffentlichen Seiten tragen X-Robots-Tag: noindex, nofollow, noarchive — global über
eine Middleware, also auch auf Fehlerseiten.
Was protokolliert wird
- Jeder Aufruf: gekürzte IP-Adresse, Zeitpunkt, Browserkennung, ob als Link-Vorschau erkannt, und ob über Weiterleitung oder Vorschauseite.
- Jeder Versand eines Links durch das System: wer, an welche Adresse, welcher Link, Ergebnis.
- Jedes Zurücksetzen einer Zwei-Faktor-Anmeldung durch einen Administrator.
- Jeder Eingriff der Aufsicht (stilllegen, freigeben).
Die IP-Adresse wird beim Schreiben gekürzt, nicht bei der Anzeige: IPv4 ohne letztes Oktett, IPv6 mit den letzten 80 Bit auf Null. Eine Adresse, die erst später gekürzt würde, wäre vorher vollständig gespeichert gewesen.
Das gehört in die Datenschutzerklärung.
Was das System bewusst nicht tut
- Keine Prüfung der Ziel-Inhalte. Kein Abgleich mit Sperrlisten, keine Malware-Prüfung, keine Inhaltsanalyse. Geprüft wird ausschließlich, ob das Ziel auf eine andere Domain weiterleitet.
- Keine Auswertung der Aufrufe. Es gibt einen Zähler und ein Protokoll, aber keine Statistik nach Herkunft, Gerät, Referrer oder Kampagne. Das ist kein fehlendes Feature, sondern der Verzicht, aus einem Weiterleitungsdienst ein Messwerkzeug zu machen.
- Kein Cookie, kein Zählpixel, keine Kennung des Besuchers.
- Keine echte Löschung von Links. Sie werden stillgelegt und als gelöscht markiert, damit die Adresse belegt bleibt.
Quelle dieser Seite:
docs/betrieb/sicherheit.md
im Repository. Sie wird beim Bauen daraus erzeugt — Änderungen gehören in die
Markdown-Datei, nicht in diese Seite.