-
SHUFTN 0.2.5 Stable
released this
2026-09-03 09:38:15 +00:00 | 36 commits to main since this releaseEin Anhang liess sich nicht öffnen, solange ein Abgleich lief. „Der Kern gleicht gerade ab — gleich noch einmal versuchen." Bei einem gewachsenen Postfach dauert ein Abgleich Minuten; wer in dieser Zeit dreimal auf dieselbe Rechnung klickt, bekommt dreimal dieselbe Ausrede und hält das Programm für kaputt. Jetzt stellt sich das Öffnen an, statt aufzugeben — dieselbe Entscheidung, die der Postausgang schon getroffen hatte. Das Warten kostet nichts: Es läuft auf einem eigenen Faden, das Fenster bleibt bedienbar.
PDF wird gezeichnet — im Fenster, ohne Acrobat. Rechnungen kommen als PDF, nicht als Word; das war die auffälligste Lücke. Gezeichnet wird mit pdf.js, demselben Auswerter, der in Firefox jedes PDF anzeigt: in JavaScript geschrieben und damit frei von der Sorte Speicherfehler, aus der die PDF-Lücken der letzten zwanzig Jahre bestehen. Er läuft ohne Netz — Schriften und Zeichentabellen werden nicht nachgeladen —, ohne
evalund ohne die Anmerkungsschicht: Gezeichnet wird die Seite, Verweise und Formulare bleiben Bild und werden nicht zu Knöpfen, die irgendwohin führen.Gezeichnet wird, was in die Nähe des Blickfelds kommt. Ein Bauantrag mit achtzig Seiten soll nicht erst alle achtzig zeichnen, bevor die erste zu sehen ist.
Videos laufen im Fenster — MP4, WebM und Ogg, mit Bedienelementen und ohne automatisches Abspielen.
Aus dem Dateibaum ohne Grössengrenze. Eine Datei auf dem Rechner hat einen Pfad; SHUFTN stellt sie über eine eigene Medienausgabe bereit, und der Abspieler holt sie sich stückweise ab. Damit läuft auch ein Baustellenvideo mit dreihundert Megabyte, und man kann darin springen. Bei einem Anhang gibt es keinen Pfad — der geht als Ganzes hinüber, und dort gilt weiter eine Grenze von 64 MB mit einem Hinweis aufs Standardprogramm.
Die Medienausgabe öffnet einen Port, und das gehört gesagt. Ein Postprogramm, das das tut, muss es sich verdienen; fünf Riegel halten ihn eng:
- Gebunden nur an
127.0.0.1— aus dem Netz nicht erreichbar, auch nicht aus demselben WLAN. * Ein zufälliger Port, keine feste Nummer, die jemand anlaufen könnte. * Je Datei ein Geheimnis aus 128 zufälligen Bit des Systemgenerators. Ohne das gibt es 404, und raten lässt es sich nicht. * Kein Pfad aus der Anfrage. Ausgeliefert wird, was hinterlegt wurde — die Anfrage nennt eine Kennung, keinen Dateinamen. Damit gibt es keinen Pfad-Ausbruch, weil es keinen Pfad gibt. * Nur solange das Fenster offen ist. Beim Schliessen wird die Kennung zurückgezogen.
Wer ein AVI oder ein echtes QuickTime öffnet, bekommt eine Meldung statt eines schwarzen Felds mit einem Abspielknopf, der nichts tut.
Textdateien und Bilder kommen dazu.
.txtzeigt der Betrachter in fester Breite, damit Spalten aus Tabulatoren stehen bleiben — und er sagt oben, welche Kodierung er angenommen hat. Das ist keine Spielerei: Windows hat drei Sorten Textdatei hinterlassen (UTF-8, UTF-16 und ANSI), und wer stur eine davon liest, macht aus „Grüße" ein „Gr??e". Erkannt wird über die Stückliste, dann über die Gültigkeit als UTF-8, sonst Windows-1252. Stehen die Umlaute doch falsch, sieht man wenigstens, wovon der Betrachter ausgegangen ist.Bilder — PNG, JPEG, GIF, BMP, WebP. Decodiert werden sie von der Bildmaschine des Browsers, nicht von SHUFTN. Ein Bilddecoder ist eine der ältesten Angriffsflächen überhaupt; einen eigenen einzubauen wäre mehr Arbeit und mehr Risiko. Der Typ kommt aus den ersten Bytes und nicht aus dem Dateinamen: Wer eine HTML-Datei
foto.pngnennt, bekommt eine Meldung.Kein SVG. Ein SVG ist kein Bild, sondern ein Programm — es kann Skripte, Fremdverweise und eingebettete Objekte enthalten. Ein
<img>führt davon zwar nichts aus, aber das ist eine Zusicherung des Browsers, und die Zusage dieses Betrachters soll nicht davon abhängen, dass sie eingehalten wird.Ein Dateibaum in SHUFTN — „Dateien" in der Leiste links. Desktop, Dokumente, Downloads, OneDrive und die Laufwerke; Ordner mit Grösse und Datum, ein Filter für den offenen Ordner, ein Pfad zum Anklicken. Ein Klick auf eine Word- oder Excel-Datei zeigt sie im Betrachter — es muss also nichts mehr aus dem Explorer heraus geöffnet werden, nur um hineinzusehen.
Er liest, und sonst nichts. Er verschiebt nicht, löscht nicht, benennt nicht um und startet nichts. Ein Postprogramm, das Dateien ausführen kann, ist genau die Tür, die man in einem Postprogramm nicht haben will — was einen Anhang gefährlich macht, macht auch eine Datei auf der Platte gefährlich, und der Weg vom Anhang zur Platte ist ein Doppelklick. Wer etwas starten will, hat den Windows-Explorer; der Knopf „Im Explorer" führt dorthin, und zwar zum Ordner: Derselbe Aufruf mit einer Datei würde sie ausführen.
Aus demselben Grund liest SHUFTN von der Platte nur
.docxund.xlsx— und prüft die Endung, bevor es die Datei anfasst. Sonst wäre der Befehl ein allgemeines „lies mir irgendeine Datei".SHUFTN zeigt Word- und Excel-Dateien selbst. Ein Klick auf einen
.docx- oder.xlsx-Anhang öffnet ihn im Programm statt in Word — mit Überschriften, Fettdruck, Tabellen und Listen, bei Mappen mit Blattreitern, Spaltenköpfen und den richtigen Zeilennummern. Der Knopf mit der Lupe oben rechts nimmt dafür auch Dateien vom Rechner. Der Weg nach draussen bleibt: Am Anhang sitzt ein zweiter Knopf, der ihn wie bisher ins Standardprogramm gibt.Der Betrachter ist absichtlich misstrauisch gebaut, denn ein Dokument ist eine fremde Datei, die auf dem eigenen Rechner ausgewertet wird — die gleiche Klasse wie ein Mailanhang:
- Es wird nie HTML erzeugt. Der Kern gibt Absätze, Läufe und Zellen heraus, die Oberfläche baut daraus Elemente. Damit gibt es keine Stelle, an der Text aus einer fremden Datei zu Auszeichnung werden könnte. * Makros werden erkannt, gemeldet und nicht angefasst. Es gibt in der Kiste keinen Weg, der irgendetwas ausführt. * Eine Dokumenttyp-Deklaration wird abgelehnt, nicht ausgewertet. Damit fallen zwei Angriffe auf einmal weg: Dateien vom Rechner in das Dokument zu holen, und aus einer Kilobyte-Datei Gigabytes im Speicher zu machen. * Nichts wird nachgeladen. Verweise nach draussen werden gezählt und übersprungen — ein Betrachter, der beim Öffnen eine Adresse abruft, verrät dem Absender, dass gelesen wurde. * Grenzen werden beim Lesen geprüft, nicht der Datei geglaubt. Ein Zip-Eintrag nennt seine entpackte Grösse selbst; eine Zip-Bombe nennt sie falsch.
Was übergangen wurde, steht als Hinweis über dem Dokument. Ein Betrachter, der schweigend die Hälfte weglässt, ist schlimmer als keiner — weil man ihm glaubt.
Was er nicht ist: ein Ersatz für Word. Die Treue reicht zum Lesen; Seitenumbrüche, Kopfzeilen, Bilder und Zeichnungen gibt es nicht, Formeln werden nicht gerechnet. Zum Bearbeiten führt der zweite Knopf hinaus.
Downloads
- Gebunden nur an