Wikipedia:Technik/Archiv/Baustellen/Sicherheitskopie des bearbeiteten Wikitextes auf Festplatte

Falls während einer längeren Bearbeitung eines Wikitextes Browser, Rechner, Netzverbindung, die WMF oder alle zusammen abstürzen, soll (ggf. zeitabhängig automatisch) eine Sicherheitskopie auf die Festplatte des eigenen Rechners geschrieben werden.

Hintergründe

Bearbeiten

Das Browser-Fenster mit der Wiki-Seite liegt in einer „Sandbox“, also aus Sicherheitsgründen abgeschottet. Kein Benutzer-Skript kann den Sandkasten verlassen und auf die Festplatte (lesend oder schreibend) zugreifen.

  • Für den Lesezugriff lässt sich unter Umständen das normalerweise für Internet-basierte HTML-Seiten unerlaubte Pseudo-Protokoll file:/ zulassen.
  • Schreiben auf die Festplatte ist einer HTML-Seite (neben internem Caching) aber nur über die normale Browser-Funktion „Seite speichern“ möglich.
    • Speichert man die HTML-Seite während der Bearbeitung auf die Festplatte, wird der zu diesem Zeitpunkt vorhandene Inhalt des Bearbeitungsfeldes vermutlich mit abgelegt, allerdings möglicherweise unerquicklich kodiert (UTF-8) und ziemlich menschenunfreundlich mitten im HTML-Code. Gleichwohl eine Notlösung bei drohendem Absturz.

Browserunabhängige Lösungen

Bearbeiten

localStorage

Bearbeiten

Eine Lösung mit Super-Cookie erlaubt eine Zwischenspeicherung auf der lokalen Festplatte. Allerdings ist die entstehende Datei nicht zur weiteren Bearbeitung vorgesehen; vielmehr handelt es sich um eine Datenbank in Browser-spezifischem Format.

Implementierung:

Browserabhängige Lösungen

Bearbeiten

Unabhängig von Wiki sind Browser-Erweiterungen für beliebige HTML-Seiten verfügbar, mit denen sich die Inhalte von Eingabefeldern automatisch auf der Festplatte speichern lassen.

  • Lazarus: Forms Recovery
    • Erweiterung für Gecko (Firefox, SeaMonkey), mit der für alle Formularfelder im Browser auf der Festplatte der letzte Stand gespeichert wird.
    • Auch konfigurierbar mit Ausschluss bestimmter URL.
    • Es werden auch Kontonummern, Geldbeträge und Bestell-Informationen oder Adressen gespeichert. Sicherheitsmaßnahmen sind dringend erforderlich.
    • Elementare Verschlüsselung und Passwort-Schutz vorhanden.
  • Textarea Cache
  • Benutzer:Dhu/wikieditpuffer
    • 2008 einmal ansatzweise entwickeltes Add-On; Website und damit Add-On nicht mehr verfügbar.

Mit dem Pseudo-Protokoll chrome: (analog javascript: gebildet) lässt sich in Gecko-basierten Browsern wie Firefox eine Skript-Funktion aufrufen, die nicht von den Brettern des Sandkastens eingeengt wird („privilegiert“).

  • Die Programmiersprache hinter chrome: ist normales JavaScript.
  • Der mit chrome gestarteten Funktion können alle Eigenschaften und Objekte der HTML-Seite des in diesem Moment aktiven Fensters zur Verfügung gestellt werden. Dazu gehören die HTML-Elemente einschließlich des TEXTAREA#wpTextbox1 – die in der Seite definierten JavaScript-Funktionen und Variablen wären zwar ebenfalls zugreifbar, sollten jedoch wegen unübersehbarer Sicherheitslecks nicht zugeordnet wären.
  • In einer über Wiki-Seiten unabhängig von einem konkreten PC definierten Skript kann die eigentliche Programmierung verfügbar gemacht werden.

Die Chrome-Funktionen und Fenster können nicht aus dem nicht-privilegierten http-Dokument heraus aufgerufen oder gestartet werden; jedoch können sie Ereignisse (events) an die laufende Chrome-Anwendung senden – (und auch umgekehrt).

Greasemonkey

Bearbeiten

Greasemonkey unterliegt den gleichen Restriktionen wie anderer Code innerhalb der Seite.

autoSave-Programm

Bearbeiten
  • In einem autoSave-Programm kann
    • sofort der Inhalt des Bearbeitungsfeldes gespeichert werden, etwa als TXT-Datei;
    • eine benutzerdefinierte automatische Wiederholung (alle 5 Minuten) veranlasst werden; der allererste Start muss jedoch von außen angestoßen werden;
    • als Dateiname der Seitenname (Namensraum+Lemma) bei geeigneter Umwandlung von Sonderzeichen wie : und / benutzt werden, schlicht durch URL-Encoding;
    • das Vorhandensein gleicher Dateinamen geprüft und eine entsprechend hochgezählte Nummer angehängt werden; aber besser noch: der Zeitstempel (vermeidet vielleicht unerlaubte Inspektion des Dateisystems).
  • Der Inhalt der entstehenden Datei ist möglicherweise kodiert (UCS, UTF-8); bei einem tatsächlichen Absturz muss ggf. die geeignete Kodierung eingestellt werden, um sie mit C&P in das wieder aufgebaute Bearbeitungsfeld kopieren zu können.
  • Kam es nicht zu Unglücksfällen, kann man täglich oder wöchentlich seine Festplatte aufräumen. Ansonsten braucht man neben den Wiki-Seiten die temporären Versionen nie wieder, die genaue Schreibung des Dateinamens und Kodierung des Inhalts ist daher auch weniger relevant.

Sicherheitshinweis

Bearbeiten

Jede Interaktion, die eine Speicherung von Daten aus der Webseite in eine lokale Datei auf der Festplatte ermöglicht, durchlöchert das Sicherheitssystem des Browsers.

  • Verwendung erfolgt grundsätzlich nur auf eigene Gefahr des Benutzers.
  • Projektweit bereitgestellter Code hat besonders übersichtlich und nachvollziehbar geschrieben zu sein.