Ryuno-Ki: WebStorage kann blockiert sein

problematische Seite

Auf der Suche nach ToDos bin ich auf https://wiki.selfhtml.org/wiki/JavaScript_und_das_DOM/DOM-Manipulation#Ergebnisse_mit_Web_Storage_speichern gestoßen, was auf die „problematische Seite” https://wiki.selfhtml.org/wiki/JavaScript/Web_Storage verweist.

Dort heißt es

Die Daten werden im Cache des Browsers gespeichert und werden beim Verlassen der Seite nicht gelöscht, können also beim nächsten Besuch des Users wieder genutzt werden.

Das stimmt nicht unbedingt. Wenn etwa eine Permission Policy gesetzt wird, die nicht allow="storage-access" führt, dann wird der Browser den Zugriff auf localStorage mit einem Fehler quittieren.

Im SelfHTML-Wiki hieß es, dass Foren-Threads gegenüber Diskussionsseiten zu bevorzugen sind. Daher probier ich das jetzt einmal 🐱

Ich würde hier eine Vorlage:Info, Hinweis oder dergleichen einfügen wollen. Allerdings ist es mitunter schon als „fortgeschrittenes Niveau” zu betrachten.

akzeptierte Antworten

  1. problematische Seite

    Hallo Ryuno-Ki!

    Herzlich willkommen!

    Im SelfHTML-Wiki hieß es, dass Foren-Threads gegenüber Diskussionsseiten zu bevorzugen sind. Daher probier ich das jetzt einmal 🐱

    Genau richtig!

    Auf der Suche nach ToDos bin ich auf https://wiki.selfhtml.org/wiki/JavaScript_und_das_DOM/DOM-Manipulation#Ergebnisse_mit_Web_Storage_speichern gestoßen, was auf die „problematische Seite” https://wiki.selfhtml.org/wiki/JavaScript/Web_Storage verweist.

    Genau! Mich stört vor allem das Beispiel der ToDo-Liste, die aus klickbaren spans besteht und auch sonst nicht tutorialwürdig ist. Im DOM-Tutorial will ich das Beispiel neu aufbauen und dann im letzten Abschnitt auch mit Web Storage arbeiten.

    Dann soll JavaScript/Web Storage - um das Beispiel bereinigt - ein Grundlagenartikel werden.

    Dort heißt es

    Die Daten werden im Cache des Browsers gespeichert und werden beim Verlassen der Seite nicht gelöscht, können also beim nächsten Besuch des Users wieder genutzt werden.

    Das stimmt nicht unbedingt. Wenn etwa eine Permission Policy gesetzt wird, die nicht allow="storage-access" führt, dann wird der Browser den Zugriff auf localStorage mit einem Fehler quittieren.

    Ich würde hier eine Vorlage:Info, Hinweis oder dergleichen einfügen wollen. Allerdings ist es mitunter schon als „fortgeschrittenes Niveau” zu betrachten.

    Ja, das liegt in der Natur der Sache, das selbst vermeintlich einfache Sachen schnell komplex(er) werden!

    Herzliche Grüße

    Matthias Scharwies

  2. problematische Seite

    Hallo Ryuno-Ki,

    Im SelfHTML-Wiki hieß es, dass Foren-Threads gegenüber Diskussionsseiten zu bevorzugen sind.

    Genau.

    Permission Policy

    Danke für den Hinweis.

    Das Thema Privacy ist in ständiger Entwicklung und unsere Manpower ist leider nicht so umfangreich, dass wir ständig hinterher kämen. Wir sind ständig auf der Suche nach kompetenten Mitautoren!

    Rolf

    --
    sumpsi - posui - obstruxi
    1. problematische Seite

      Hm, irgendwie hab ich nie eine Benachrichtigung über eine Antwort im Forum erhalten. Entschuldigt die späte Reaktion.

      Ich geh mal suchen, ob ich noch irgendwo einen Haken setzen muss.

      1. problematische Seite

        Hm, irgendwie hab ich nie eine Benachrichtigung über eine Antwort im Forum erhalten. Entschuldigt die späte Reaktion.

        Ich geh mal suchen, ob ich noch irgendwo einen Haken setzen muss.

        Hallo,

        können wir ja gleich einmal testen, ob du diesen gefunden hast. Denn ich glaube, du bringst etwas durcheinander. Die Permission-Policy ist bei Mozilla noch als experimental deklariert und ist konzeptionell ein Mechanismus, um der Browser-Sandbox gewissen direkte Zugriffsmöglichkeiten zu gewähren, die ansonsten aus Sicherheitsgründen grundsätzlich nicht erlaubt sind. Zum Beispiel der direkte Lese/Schreibzugriff auf den lokalen Speicher. Permission-Policy ist also ähnlich dem Konzept, dass man von Smartphones kennt, wenn eine Applikation um gewissen Zugriffsrechte bittet.

        Das hat aber nichts mit "localStorage", "sessionStorage" oder "IndexedDB" zu tun, die persistenten Speicher direkt in der Browser-Sandbox je Web-Adresse bereitstellen.

        Gruss Michael

        1. problematische Seite

          Hallo Michael,

          ich denke, Ryuno-Ki spricht über die Forenbenachrichtigungen. Dazu klickt man oben rechts auf den "Einstellungen"-Link und dann auf den Benachrichtigungen-Tab. Das Notification-API im Browser ist was anderes. Foren-Benachrichtigungen sind E-Mails.

          Rolf

          --
          sumpsi - posui - obstruxi
          1. problematische Seite

            Genau. Ich sprach von Foren-Benachrichtigungen. Hab auf die beiden Antworten hier auch je eine erhalten ✅

        2. problematische Seite

          Unterstreicht das nicht mein Argument?

          Gerade weil es sein kann, benötigt das Lesen und Schreiben von Web Storage Ausnahmebehandlung.

          1. problematische Seite

            Hallo Ryuno-Ki,

            du schriebst:

            Das stimmt nicht unbedingt. Wenn etwa eine Permission Policy gesetzt wird, die nicht allow="storage-access" führt, dann wird der Browser den Zugriff auf localStorage mit einem Fehler quittieren.

            Ich bin an der Ecke noch nicht so tief eingestiegen, aber ich verstehe das Permission API so, dass es hier darum geht, das Sandboxing von 3rd-Party Komponenten zu umgehen.

            Fallbesipiel: In wiki.selfhtml.org setze ich localStorage.setItem("Foo", "123"). Nun rufe ich mit einem sicherheitsbewussten Browser die Seite example.org/raubwiki auf, die das Self-Wiki in einem iframe einbindet. Liest das Wiki dort localStorage.getItem("Foo"), bekommt es NICHT "123", sondern null, weil der Browser den localStorage partitioniert und mir den Storage für "wiki.selfhtml.org-in-example.org" unterschiebt.

            WENN das Wiki auf den unpartitionierten localStorage zugreifen will - also die localStorage-Instanz, die es ohne iframing hätte, dann muss es das Permission-API verwenden und Zugriff beantragen.

            Was ich aber unabhängig davon gefunden habe, ist eine SecurityException, die man beim Zugriff auf localStorage oder sessionStorage bekommen kann, wenn der Origin kein HTTP- oder HTTPS-Schema verwendet (sondern beispielsweise file: oder data:). Und es kann sein, dass "Die Anforderung (...) eine Richtlinienentscheidung (verletzt). Zum Beispiel, wenn der Benutzer die Browser so konfiguriert hat, dass verhindert wird, dass die Seite Daten speichert.". Schreibt der KI-Übersetzknecht von MDN

            Also, ja, Storage-Container sind nichts für leichtsinnige Gemüter. Die Anzahl der Security-Tretminen, um die man heute herumnavigieren muss, wird immer umfangreicher.

            Rolf

            --
            sumpsi - posui - obstruxi
            1. problematische Seite

              Okay, ich glaube, wir nähern uns.

              Mein Wunsch im Hinblick auf die verwiesene Seite ist, dass es einen Hinweis gibt, dass der abgerufene Wert entweder einen Fehler wirft, d.h. in einem try-catch-Konstrukt gekapselt werden sollte, und/oder auf Plausibilität geprüft werden sollte (d.h. auf Ungleichheit mit null).

              Ich sehe, dass bereits eine Warnung durch @Matthias Scharwies ergänzt wurde (Stand vom 13. Mai). Danke an dieser Stelle.

              Wie ist der Prozess zum „Lösen” eines Forenbeitrags? Wir sind ja fast am Ende.

              1. problematische Seite

                Hallo,

                Wie ist der Prozess zum „Lösen” eines Forenbeitrags?

                es gibt keinen. Du darfst gern noch eine Antwort schreiben im Sinne von "Danke, das hat mir weitergeholfen" (hast du ja im Prinzip schon). Du darfst auch einen oder mehrere Beiträge als "akzeptierte Antwort" markieren (gelber Haken rechts unter dem Posting-Text.

                Du kannst aber auch einfach gar nichts weiter tun, dann landet der ganze Thread nach einiger Zeit automatisch im Archiv.

                Einen schönen Tag noch
                 Martin

                --
                Manchmal kann man gar nicht so viel fühlen, wie man denkt.
                Und manchmal fühlt man so viel, dass man gar nicht denken kann.