it-swarm.com.de

Problemumgehungen für Websites, die ohne Cookies beschädigt sind?

Aus Datenschutzgründen habe ich meinen Browser so eingerichtet, dass Cookies standardmäßig abgelehnt werden. Ich erlaube nur Cookies von Domains auf der Whitelist. Im Allgemeinen funktioniert dies für mich in Ordnung. Jetzt habe ich jedoch mindestens einen Fall, in dem es unpraktisch geworden ist. Ich bezahle für ein digitales Abonnement der Washington Post, weil ich ihren Journalismus mag und ihn unterstützen möchte, aber ich möchte nicht, dass sie oder ihre Werbetreibenden mich verfolgen, deshalb melde ich mich nie an und akzeptiere keine Cookies von ihnen. Dies hat bis vor kurzem gut funktioniert. In den letzten Tagen haben sie auf ihrer Website etwas Neues gemacht, mit dem Ergebnis, dass ich zwar ihre Homepage anzeigen kann, aber wenn ich mich zu einer Geschichte durchklicke, diese Meldung in Firefox erhalte:

Die Seite wird nicht richtig umgeleitet. Firefox hat festgestellt, dass der Server die Anforderung für diese Adresse auf eine Weise umleitet, die niemals abgeschlossen wird. Dieses Problem kann manchmal durch Deaktivieren oder Verweigern der Annahme von Cookies verursacht werden.

Dies ist nicht die Paywalling der Website. In einem Browser, der so eingerichtet ist, dass alle Cookies akzeptiert werden, kann ich auf alle Inhalte zugreifen, ohne mich anzumelden. Bei jedem Seitenklick werden jedoch etwa 20 Cookies von washingtonpost.com und etwa 20 Cookies von ihren Werbetreibenden erstellt. Wenn ich zur Startseite gehe, die Cookies lösche und dann auf einen Link zu einer Story klicke, funktioniert dies, aber die Cookies werden neu erstellt. Es scheint also, dass auf den Seiten, die ich anzeigen möchte, Code vorhanden ist, der versucht, diese Cookies zu erstellen, und dann einen Fehler auslöst, wenn das Erstellen der Cookies fehlschlägt.

Gibt es eine gute Strategie für diese Art von Situation, die meine Privatsphäre schützt? Ich habe zum Beispiel darüber nachgedacht, ein Skript zu schreiben, das alle 10 Sekunden auf meinem Computer ausgeführt wird und alle Cookies außer denen von Domains auf der Whitelist löscht.

verwandte: https://askubuntu.com/questions/368325/how-to-clear-browsers-cache-and-cookies-from-terminal

19
Ben Crowell

Wenn Sie sich Gedanken über Tracker machen, suchen Sie wahrscheinlich nach First Party Isolation .

First Party Isolation ist eine Funktion, die Firefox aus dem Konzept Cross-Origin Identifier Unlinkability des Tor-Browsers übernommen hat. FPI verknüpft alle Cookies mit der Domain eines Erstanbieters (dem in der URL-Leiste) und unterscheidet Cookies von Drittanbietern zwischen verschiedenen Domains. Das heißt, wenn Sie a.com Besuchen und ein Tracker ein Cookie setzt und später b.com Besuchen, das denselben Tracker verwendet, können die zuvor gesetzten Cookies nicht angezeigt werden , wenn die Erstanbieter-Domain anders war (a.com). Eine andere Erklärung:

Was ist First-Party-Isolation?

FPI trennt Cookies nach Domänen. Dies ist wichtig, da die meisten Online-Werbetreibenden für jede Website, die der Nutzer besucht, ein Cookie auf dem Computer des Benutzers ablegen und der Werbetreibende eine Anzeige lädt.

Wenn FPI aktiviert ist, kann der Ad Tracker nicht alle Cookies sehen, die auf dem PC des Benutzers abgelegt wurden, sondern nur das Cookie, das für die Domain erstellt wurde, die der Nutzer gerade anzeigt.

Dadurch wird der Anzeigen-Tracker gezwungen, für jede Website, die der Nutzer besucht, ein neues Benutzerprofil zu erstellen, und der Werbetreibende kann diese Cookies und den Browserverlauf des Nutzers nicht zu einem großen Fettprofil zusammenfassen.

(Quelle)

Um FPI zu aktivieren, können Sie entweder zu about:config Gehen und privacy.firstparty.isolate Auf true setzen oder das offizielle Add-On First Party Isolation installieren. Beachten Sie jedoch, bevor Sie es aktivieren, dass einige Web-Apps für die tatsächliche Funktionalität auf Cookies von Drittanbietern angewiesen sind und danach möglicherweise unbrauchbar werden (z. B. können Sie sich möglicherweise nicht anmelden). Wenn solche Probleme auftreten, setzen Sie privacy.firstparty.isolate.restrict_opener_access Auf false, wodurch die Isolationsregeln gelockert werden und es weniger wahrscheinlich ist, dass Probleme beispielsweise während eines domänenübergreifenden Anmeldeflusses auftreten, der Sie umleitet zwischen verschiedenen Domänen.


Ein anderer Ansatz in Firefox sind Container .

Mit Containern isolieren Sie im Wesentlichen verschiedene Sitzungen voneinander, ohne mehrere Browserprofile verwenden zu müssen. Zum Beispiel könnten Sie WaPo in einem bestimmten Container lesen, und alle von Trackern in diesem Container gesetzten Cookies wären in den anderen nicht sichtbar. Container sind in Firefox Nightly und als Add-On verfügbar.

(Chrome hat nicht genau diese Funktion, aber Sie können mehrere Profile verwenden, um den gleichen Effekt zu erzielen.)


Ich habe darüber nachgedacht, ein Skript zu schreiben, das alle 10 Sekunden auf meinem Computer ausgeführt wird und alle Cookies außer denen von Domains auf der Whitelist löscht.

Das Problem, das ich dabei sehe, ist, dass einige Websites Cookies sofort nach dem Löschen neu erstellen (solange Sie noch ihre Skripte geladen haben). Und wenn Ihr Timing schlecht ist, könnten Sie möglicherweise auf dieselben Probleme stoßen, die Sie mit deaktivierten Cookies hatten.

Schließlich gibt es auch seriöse Addons wie Ghostery , die bekannte Tracker erkennen und blockieren. Sie haben also viele Möglichkeiten, Ihre Privatsphäre zu wahren, ohne Cookies vollständig zu deaktivieren - was Sie im modernen Web leider nicht weit bringt.

31
Arminius

Starten Sie ein Inkognito-Browserfenster (oder VM Instanz, wenn Sie wirklich paranoid sind), um WaPo anzuzeigen, verwenden Sie es dann nur für diese Site oder schließen Sie es und öffnen Sie bei jedem Besuch ein neues.

6
JesseM

Dies ist nur eine mögliche Antwort auf meine eigene Frage und wahrscheinlich nicht die optimale, aber ich dachte, es lohnt sich zu beschreiben. Ich habe die Idee eines Skripts zum Löschen von Cookies ausprobiert, die nicht auf einer Whitelist stehen. Unten finden Sie ein Ruby - Skript zur Verwendung mit Firefox, das ich mir ausgedacht habe. Ich habe es unter Linux getestet, aber es kann wahrscheinlich plattformübergreifend verwendet werden (möglicherweise müssen Schrägstriche im Dateipfad vorhanden sein) geändert für Windows?).

Es scheint, dass Firefox, obwohl ich die Cookies sofort aus der SQLite-Datei löschen kann, in der sie gespeichert sind, eine eigene In-Memory-Kopie der Cookies verwendet. Daher wird das Löschen der Cookies erst wirksam, wenn ich Firefox neu starte.

Firefox verfügt über einen eigenen Mechanismus zum Löschen aller Cookies mit Ausnahme der Whitelist am Ende jeder Sitzung. Sie müssen jedoch entweder diesen Mechanismus oder die Whitelist für Cookies innerhalb einer Sitzung verwenden. Durch Letzteres und die Verwendung dieses Skripts erhalte ich eine genauere Kontrolle: Ich habe Websites, auf denen keine Cookies gesetzt werden dürfen (Standardeinstellung), Websites, die in der grauen Liste aufgeführt sind (Cookies werden nach dem Ende der Sitzung gelöscht), und Websites, die auf der Whitelist stehen.

Vorteile:

  • Die Cookies sind tatsächlich verschwunden (nach einem Neustart) und nicht wie im FPI abgeschirmt. Dies macht es einfach zu sagen, was los ist.
  • Eine Site wie washingtonpost.com funktioniert absolut normal, da das Löschen der Cookies nicht erfolgt, solange ich noch auf der Site bin.
  • Plattformübergreifend (-ish?).
  • Es ist für mich unkompliziert, eine Whitelist zu führen.

Nachteile:

  • Dies verhindert nur die Verfolgung, die sich über Sitzungen erstreckt. Es verhindert nicht die kurzlebige Verfolgung innerhalb einer Sitzung.
  • Funktioniert nur für Firefox.

Code:

#!/usr/bin/Ruby

require 'sqlite3'

# Delete all cookies except those from hosts on the following list.
# Note that firefox keeps its cookies cached in memory, so this cleaning will not
# take effect inside firefox until you restart firefox.

# Putting foo.com on this list automatically includes www.foo and .foo.
$allowed_hosts = [
  "Amazon.com",
  "bit.ly",
  "github.com",
  "gmx.com",
  "rockclimbing.com",
  "stackexchange.com"
]

$allowed_hosts_all_forms = []
$allowed_hosts.each { |Host|
  $allowed_hosts_all_forms.Push(Host)
  $allowed_hosts_all_forms.Push("www."+Host)
  $allowed_hosts_all_forms.Push("."+Host)
}

def main
  # https://unix.stackexchange.com/questions/82597/where-does-firefox-store-its-cookies-on-linux
  # loop over profiles
  Dir.glob( "#{Dir.home}/.mozilla/firefox/*.default/cookies.sqlite").each { |cookie_file_name|
    print "cookie file #{cookie_file_name}\n"
    begin
      db = SQLite3::Database.open(cookie_file_name)
      print "before deletion:#{list_all_hosts(db).sort.join(' ')}\n"
      allowed = []
      $allowed_hosts_all_forms.each {|Host| allowed.Push("'#{Host}'") } # surround with single quotes
      #print "delete from moz_cookies where Host not in (#{allowed.join(',')});"
      db.execute("delete from moz_cookies where Host not in (#{allowed.join(',')});")
      print "after deletion:#{list_all_hosts(db).sort.join(' ')}\n"
    rescue SQLite3::Exception => e 
      puts "Exception occurred"
      puts e
    ensure
      db.close if db
    end
  }
end

def list_all_hosts(db)
  hosts = []
  db.execute("SELECT Host,name FROM moz_cookies").each { |row|
    hosts.Push(row[0])
  }
  return hosts
end

main()
0
Ben Crowell