Greasemonkey: Funktionsanfrage: Cookie-API

Erstellt am 7. Sept. 2013  ·  8Kommentare  ·  Quelle: greasemonkey/greasemonkey

Ich schlage eine Cookie-API vor. Die Motivation besteht darin, das "NID"-Cookie bei google.com zu entfernen, um das Tracking zu reduzieren, während das "PREF"-Cookie intakt bleibt. Das Problem mit document.cookie ist, dass nur das "PREF"-Cookie angezeigt wird und sonst nichts, da das "NID"-Cookie zu ".google.com" gehört. Firefox scheint diese Funktionalität auch nicht nativ zu unterstützen und ist nur auf Domain-Basis zu deaktivieren.
Hilfreich sind in diesem Fall einige APIs, möglicherweise mit Einschränkungen, auf die zugegriffen werden kann.

Hilfreichster Kommentar

Ich bin auch auf einige Situationen gestoßen, in denen ich Cookie-Manipulationen durchführen möchte, für die document.cookie nicht ausreichte. Es gibt viele Dinge zu beachten, um dies gut zu machen ...

Alle 8 Kommentare

Die NID ist in document.cookie nicht sichtbar, da sie httponly=true ist. Ich wette, Sie können es jedoch mit Ihrem eigenen Dummy-Wert überschreiben.

Ich könnte es auf der aktuellen Domain überschreiben, aber nicht auf der Domain google.com. Ich glaube, dass dies noch in Betracht gezogen werden kann, da Cookies häufig verwendet werden, um Benutzer zu verfolgen.

Kann dieses Thema wieder geöffnet werden? Selbst wenn ich das Cookie überschreiben würde, gibt es beispielsweise keine Möglichkeit, Cookies auf der aktuellen Seite aufzulisten. Userscript-Zugriff auf http-Cookies kann dies lösen, beispielsweise durch die Verwendung einer GM_cookie() API.

Theoretisch ist das natürlich möglich. Aber Greasemonkeys Philosophie besteht seit einiger Zeit darin, den Fortschritt, den das Web selbst als Plattform gemacht hat, zu nutzen, die Verwendung von "HTML5"-APIs zu fördern und benutzerdefinierte APIs zu entmutigen (einige davon sind bereits im Großvater). Ein starker Fall würde helfen.

(IMO-Sites verwenden HttpOnly nicht aus Versehen, es ist eine absichtlich implementierte Sicherheitsfunktion. Daher wäre der Fall wahrscheinlich schwer zu begründen. Und nichts hindert Sie daran, eine Site-spezifische Erweiterung vorzunehmen, wenn Sie Zugriff auf APIs auf niedrigerer Ebene benötigen und sind bereit, Firefox nur als Ergebnis zu sein.)

Entschuldigung für den Kommentar in einer so alten Ausgabe.

Ich wette, Sie können es mit Ihrem eigenen Dummy-Wert überschreiben

Ich habe es versucht und es scheint, als ob es nicht möglich ist. Während der Browser einige Cookies mit dem HttpOnly-Flag behält, können Sie von JS weder darauf zugreifen noch sie überschreiben.

Ein starker Fall würde helfen

Ich bin mir nicht sicher, wie stark ein solcher Fall ist, aber ich muss das Cookie aus dem Userscript entfernen, um eine bedeutungslose Umleitung an einer bestimmten Site zu vermeiden. Und derzeit ist es nicht möglich, da es serverseitig mit dem HttpOnly-Flag gesetzt wird.

Ich werde ein schwaches Beispielszenario aufstellen. Ich schreibe auf einer Seite, auf der es eine ganze Reihe von Cookies gibt. Ein Cookie bewirkt, dass die gesamte Website aufgrund einer seltsamen Designauswahl anders dargestellt wird; Das Cookie wird gesetzt, indem Sie sich in einem bestimmten Teil der Website anmelden, ohne dass Sie sich irgendwo abmelden können. Da dieses Cookie mit einem httponly-Flag gesetzt ist, kann ich es nicht mit der Standardmethode document.cookie reparieren. Es wäre schön, ein GM_cookie oder ähnliches zu haben, um Cookies, die ansonsten über httponly geschützt sind, setzen/überschreiben/löschen zu können.

Ich bin auch auf einige Situationen gestoßen, in denen ich Cookie-Manipulationen durchführen möchte, für die document.cookie nicht ausreichte. Es gibt viele Dinge zu beachten, um dies gut zu machen ...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen