¿Soluciones provisionales para sitios que están dañados sin cookies?

19

Para la privacidad contra el seguimiento, mi navegador está configurado para rechazar las cookies de forma predeterminada. Solo permito cookies de dominios en lista blanca. En general, esto funciona bien para mí. Sin embargo, ahora tengo al menos un caso en el que se ha vuelto inconveniente. Pago una suscripción digital al Washington Post, porque me gusta su periodismo y quiero apoyarlo, pero no quiero que ellos ni sus anunciantes me rastreen, por lo que nunca me conecto y no acepto cookies de ellos. Esto ha funcionado bien hasta hace poco. En los últimos días, han hecho algo nuevo en su sitio web con el resultado de que aunque puedo ver su página de inicio, si hago clic en una historia, recibo este mensaje en Firefox:

  

La página no se está redirigiendo correctamente. Firefox ha detectado que el servidor está redirigiendo la solicitud de esta dirección de una manera que nunca se completará. Este problema puede deberse a veces al deshabilitar o negarse a aceptar cookies.

Esto no es lo que pagan por el sitio. En un navegador configurado para aceptar todas las cookies, puedo acceder a todo su contenido sin iniciar sesión, pero cualquier clic en la página crea unas 20 cookies de washingtonpost.com y unas 20 cookies de sus anunciantes. Si voy a la página de inicio, borro las cookies y luego hago clic en un enlace a una historia, funciona, pero las cookies se recrean. Entonces, parece que hay un código en las páginas que trato de ver que intenta crear estas cookies y luego arroja un error si falla la creación de las cookies.

¿Existe alguna buena estrategia para este tipo de situación que preserve mi privacidad? Por ejemplo, pensé en escribir un script que se ejecutara cada 10 segundos en mi máquina y eliminara todas las cookies excepto las de los dominios incluidos en la lista blanca.

relacionado: enlace

    
pregunta Ben Crowell 15.02.2018 - 00:36
fuente

3 respuestas

31

Si te preocupan los rastreadores, probablemente estés buscando Aislamiento de primera persona .

First Party Isolation es una característica que Firefox adoptó de Inlinklink del identificador de origen concepto. FPI funciona vinculando todas las cookies al dominio de origen (el que se encuentra en la barra de URL), lo que hace que las cookies de terceros se diferencien entre los diferentes dominios. Es decir, si está visitando a.com y un rastreador establece una cookie, y luego visita b.com que usa el mismo rastreador, no podrá ver las cookies que colocó anteriormente, cuando la primera parte El dominio fue diferente ( a.com ). Otra explicación:

  

¿Qué es el aislamiento de primera parte

     

FPI funciona al separar las cookies por dominio. Esto es importante porque la mayoría de los anunciantes en línea colocan una cookie en la computadora del usuario para cada sitio que el usuario visita y los anunciantes cargan un anuncio.

     

Con FPI habilitado, el rastreador de anuncios no podrá ver todas las cookies que descargó en la PC de ese usuario, sino solo la cookie creada para el dominio que el usuario está viendo actualmente.

     

Esto forzará al rastreador de anuncios a crear un nuevo perfil de usuario para cada sitio que el usuario visite y el anunciante no podrá agregar estas cookies y el historial de navegación del usuario en un gran perfil.

(Fuente)

Para habilitar el FPI, puede ir a about:config y configurar privacy.firstparty.isolate a true , o instalar el add-on First Isolation Isolation . Pero antes de activarlo, tenga en cuenta que algunas aplicaciones web se basan en cookies de terceros para la funcionalidad real y pueden quedar inutilizables posteriormente (por ejemplo, es posible que no pueda iniciar sesión). Si experimenta tales problemas, intente también configurar privacy.firstparty.isolate.restrict_opener_access a false , lo que relajará las reglas de aislamiento y es menos probable que experimente problemas durante, digamos, un flujo de inicio de sesión entre dominios que lo redirige entre diferentes dominios.

Otro enfoque en Firefox es contenedores .

Básicamente, con los contenedores, se están aislando diferentes sesiones entre sí sin tener que usar múltiples perfiles de navegador. Por ejemplo, podría leer WaPo en un contenedor distinto, y las cookies establecidas por los rastreadores en ese contenedor no serían visibles en los otros. Los contenedores están disponibles en Firefox Nightly y como complemento .

(Chrome no tiene esta característica exacta, pero puedes usar varios perfiles para obtener el mismo efecto)

  

Pensé en escribir un script que se ejecutara cada 10 segundos en mi máquina y eliminara todas las cookies excepto las de los dominios incluidos en la lista blanca.

El problema que veo con esto es que algunos sitios recrean las cookies inmediatamente después de que las elimines (siempre y cuando todavía tengas sus scripts cargados). Y si la sincronización es mala, es posible que finalmente tenga los mismos problemas que tuvo con las cookies deshabilitadas.

Finalmente, también hay complementos de buena reputación como Ghostery que detectan y bloquean los rastreadores conocidos. Por lo tanto, tiene muchas opciones para mantener su privacidad sin deshabilitar las cookies por completo, lo que desafortunadamente no le lleva muy lejos en la web moderna.

    
respondido por el Arminius 15.02.2018 - 01:43
fuente
6

Abra una ventana del navegador de incógnito (o instancia de VM si está realmente paranoico) para ver WaPo, luego utilícelo solo para ese sitio, o ciérrelo y abra uno nuevo cada vez que visite.

    
respondido por el JesseM 15.02.2018 - 01:02
fuente
0

Esta es solo una posible respuesta a mi propia pregunta, y probablemente no sea la óptima, pero pensé que valía la pena describirla. Probé la idea de un script para eliminar las cookies que no están en una lista blanca. A continuación hay un script de ruby para usar con Firefox que se me ocurrió. Lo probé en Linux, pero es probable que se pueda usar de forma multiplataforma (¿es posible que se deban cambiar las barras en la ruta del archivo para Windows?).

Parece que aunque puedo eliminar inmediatamente las cookies del archivo sqlite en el que están almacenadas, Firefox usa su propia copia en la memoria de las cookies. Por lo tanto, la eliminación de las cookies no tendrá efecto hasta que reinicie Firefox.

Firefox en realidad tiene su propio mecanismo para eliminar todas las cookies excepto las listas blancas al final de cada sesión. Sin embargo, tiene que elegir entre usar ese mecanismo o usar listas blancas para cookies dentro de una sesión. Al hacer lo último y también usar este script, obtengo un control más granular: tengo sitios que no tienen permiso para establecer cookies (el valor predeterminado), sitios que están en la lista gris (cookies eliminadas después del final de la sesión) y sitios que están en la lista blanca.

Pros:

  • Las cookies en realidad se han ido (después de un reinicio) en lugar de estar aisladas como en FPI. Esto hace que sea fácil saber lo que está pasando.
  • Un sitio como washingtonpost.com funciona con total normalidad, porque la eliminación de las cookies no se produce mientras estoy en el sitio.
  • multiplataforma (-ish?).
  • Es sencillo para mí mantener una lista blanca.

Contras:

  • Esto solo evita el seguimiento que se extiende a través de las sesiones. No evitará el seguimiento de corta duración dentro de una sesión.
  • Solo funciona para Firefox.

Código:

#!/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()
    
respondido por el Ben Crowell 16.02.2018 - 00:20
fuente

Lea otras preguntas en las etiquetas