Fingerprint de Discourse - Plugin de Fingerprinting de Navegador

Hay muchos trolls por ahí que tienen más conocimientos técnicos que los miembros habituales de los foros. Algunos son como cucarachas resistentes.

1 me gusta

Parece que Google Chrome está a punto de seguir los pasos de Mozilla Firefox. Recuerdo haber leído un artículo sobre Google Chrome y el bloqueo de la huella digital, pero en este momento no puedo encontrarlo. De todos modos, esto es un indicio de lo que está por venir. ¿Eso significaría esencialmente la muerte de este complemento?
https://9to5google.com/2021/03/03/google-chrome-third-party-cookies/
https://9to5google.com/2021/01/25/google-privacy-sandbox-2021-update/

4 Me gusta

Ahora, no se muestra nada en los partidos más recientes,

Obteniendo esto en el registro de errores:

plugins/discourse-fingerprint/app/serializers/flagged_fingerprint_serializer.rb:30:in `data'

plugins/discourse-fingerprint/app/serializers/flagged_fingerprint_serializer.rb:51:in `include_is_common?'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'

(eval):9:in `_fast_attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue en attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:89:in `bloque en _serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:53:in `as_json'

app/controllers/application_controller.rb:493:in `serialize_data'

plugins/discourse-fingerprint/app/controllers/admin/fingerprint_controller.rb:25:in `index'

actionpack (6.1.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (6.1.3.2) lib/abstract_controller/base.rb:228:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:42:in `bloque en process_action'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:117:in `bloque en run_callbacks'

app/controllers/application_controller.rb:395:in `bloque en with_resolved_locale'

i18n (1.8.10) lib/i18n.rb:314:in `with_locale'

app/controllers/application_controller.rb:395:in `with_resolved_locale'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:126:in `bloque en run_callbacks'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:137:in `run_callbacks'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:34:in `bloque en process_action'

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `bloque en instrument'

activesupport (6.1.3.2) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `instrument'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:33:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'

activerecord (6.1.3.2) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/base.rb:165:in `process'

actionview (6.1.3.2) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiling_methods.rb:85:in `bloque en profile_method'

actionpack (6.1.3.2) lib/action_controller/metal.rb:190:in `dispatch'

actionpack (6.1.3.2) lib/action_controller/metal.rb:254:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:50:in `bloque en serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'

railties (6.1.3.2) lib/rails/engine.rb:539:in `call'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'

actionpack (6.1.3.2) lib/action_dispatch/routing/mapper.rb:20:in `bloque en <class:Constraints>'

actionpack (6.1.3.2) lib/action_dispatch/routing/mapper.rb:49:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:50:in `bloque en serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'

lib/middleware/omniauth_bypass_middleware.rb:71:in `call'

rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'

rack (2.2.3) lib/rack/head.rb:12:in `call'

actionpack (6.1.3.2) lib/action_dispatch/http/permissions_policy.rb:22:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:355:in `call'

rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/cookies.rb:689:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:27:in `bloque en call'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:98:in `run_callbacks'

actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

logster (2.9.6) lib/logster/middleware/reporter.rb:43:in `call'

railties (6.1.3.2) lib/rails/rack/logger.rb:37:in `call_app'

railties (6.1.3.2) lib/rails/rack/logger.rb:28:in `call'

config/initializers/100-quiet_logger.rb:23:in `call'

config/initializers/100-silence_logger.rb:31:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:23:in `call'

rack (2.2.3) lib/rack/method_override.rb:24:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiler.rb:249:in `call'

message_bus (3.3.5) lib/message_bus/rack/middleware.rb:61:in `call'

lib/middleware/request_tracker.rb:177:in `call'

railties (6.1.3.2) lib/rails/engine.rb:539:in `call'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'

rack (2.2.3) lib/rack/urlmap.rb:74:in `bloque en call'

rack (2.2.3) lib/rack/urlmap.rb:58:in `each'

rack (2.2.3) lib/rack/urlmap.rb:58:in `call'

unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'

unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'

unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

Actualizado a 2.8.0.beta1

Sigo recibiendo este error en el registro de errores y nada se muestra en la página del plugin.

plugins/discourse-fingerprint/app/serializers/flagged_fingerprint_serializer.rb:30:in `data'

plugins/discourse-fingerprint/app/serializers/flagged_fingerprint_serializer.rb:51:in `include_is_common?'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'

(eval):9:in `_fast_attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:89:in `block in _serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:53:in `as_json'

app/controllers/application_controller.rb:493:in `serialize_data'

plugins/discourse-fingerprint/app/controllers/admin/fingerprint_controller.rb:25:in `index'

actionpack (6.1.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (6.1.3.2) lib/abstract_controller/base.rb:228:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:117:in `block in run_callbacks'

app/controllers/application_controller.rb:395:in `block in with_resolved_locale'

i18n (1.8.10) lib/i18n.rb:314:in `with_locale'

app/controllers/application_controller.rb:395:in `with_resolved_locale'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:126:in `block in run_callbacks'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:137:in `run_callbacks'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `block in instrument'

activesupport (6.1.3.2) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `instrument'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:33:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'

activerecord (6.1.3.2) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/base.rb:165:in `process'

actionview (6.1.3.2) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'

actionpack (6.1.3.2) lib/action_controller/metal.rb:190:in `dispatch'

actionpack (6.1.3.2) lib/action_controller/metal.rb:254:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'

railties (6.1.3.2) lib/rails/engine.rb:539:in `call'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'

actionpack (6.1.3.2) lib/action_dispatch/routing/mapper.rb:20:in `block in <class:Constraints>'

actionpack (6.1.3.2) lib/action_dispatch/routing/mapper.rb:49:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'

lib/middleware/omniauth_bypass_middleware.rb:71:in `call'

rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'

rack (2.2.3) lib/rack/head.rb:12:in `call'

actionpack (6.1.3.2) lib/action_dispatch/http/permissions_policy.rb:22:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:355:in `call'

rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/cookies.rb:689:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:98:in `run_callbacks'

actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

logster (2.9.6) lib/logster/middleware/reporter.rb:43:in `call'

railties (6.1.3.2) lib/rails/rack/logger.rb:37:in `call_app'

railties (6.1.3.2) lib/rails/rack/logger.rb:28:in `call'

config/initializers/100-quiet_logger.rb:23:in `call'

config/initializers/100-silence_logger.rb:31:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:23:in `call'

rack (2.2.3) lib/rack/method_override.rb:24:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiler.rb:249:in `call'

message_bus (3.3.5) lib/message_bus/rack/middleware.rb:61:in `call'

lib/middleware/request_tracker.rb:177:in `call'

railties (6.1.3.2) lib/rails/engine.rb:539:in `call'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'

rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.3) lib/rack/urlmap.rb:58:in `each'

rack (2.2.3) lib/rack/urlmap.rb:58:in `call'

unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'

unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'

unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

Esto probablemente necesita un poco de atención @sam para actualizarlo. ¿Deberíamos marcarlo como roto por ahora?

Desde mi punto de vista, creo que está semidesactualizado, ya que lo que intenta hacer es muy difícil. ¿Qué opinas @dan?

5 Me gusta

O bien la mía ahora funciona o me estoy perdiendo algo; ¿las huellas digitales no se muestran incluso si no hay conflicto?

(también el texto suena extraño: “No similar signature were found.”)

sin resultados

y la configuración realizada hace aproximadamente una semana

¿Estoy equivocado sobre cómo funciona esto o necesito abordar algo?

¿Alguien?

1 me gusta

No funciona en la versión 2.7.4. He estado revisando todos los días durante más de dos semanas y siempre muestra la misma lista de usuarios.

1 me gusta

Este es el clavo en el ataúd.
https://9to5mac.com/2021/07/08/advertisers-concerned-icloud-private-relay-could-put-an-end-to-fingerprinting/

3 Me gusta

Mismo problema.

Tampoco funciona en la versión 2.8.0.beta2. Muestra la última conexión como el 26 de mayo, que es cuando vi al usuario, según veo en este plugin.

Pensé que solo me pasaba a mí.

1 me gusta

El script de Fingerprintjs2 no se cargó después de actualizarlo a la última versión. He aplicado una corrección y ahora debería funcionar correctamente. ¡Disculpas por los inconvenientes!

Con el tiempo, han habido muchos clavos en el ataúd y aún existen formas de identificar navegadores mediante huellas digitales. Al hojear rápidamente el artículo que enlazaste, parece que solo es una forma de ocultar la dirección IP del usuario y, desafortunadamente, eso significa que la identificación mediante huellas digitales sigue siendo posible (ya que depende más de las características del navegador que de la dirección IP).

5 Me gusta

¿Me perdí al habilitar un permiso o algo así?

El mío no ha funcionado hasta la fecha.

Gracias por tu ayuda.

Existe una forma de reutilizar el plugin para que funcione solo con información del lado del servidor.

Me recomendaron este plugin en Discourse check the user IP for block list only on login. Discourse no se preocupa realmente por la dirección IP de los usuarios, no prohíbe a los usuarios por IP de forma predeterminada (debes hacerlo manualmente) y solo puedes descubrir accidentalmente a un nuevo usuario con la misma IP que uno baneado. El plugin de huellas digitales tampoco me ayudó mucho, ya que tampoco verifica la IP.

Sería útil tener una página de resumen con los usuarios que tengan una IP coincidente con cuentas baneadas.

Además, existen servicios como https://ip-api.com/ que permiten verificar si una IP es un proxy o una VPN; esto podría ser otra herramienta útil.

Además de la IP, Discourse también tiene el correo electrónico del usuario. A menudo veo trolls que utilizan correos de servicios de correo temporal; esto también puede ser un indicador de un usuario problemático.

De todos modos, la huella digital se está volviendo cada vez más difícil de realizar en estos días. No puedo imaginar que será posible por mucho más tiempo debido a las empresas y personas que son cautelosas con su privacidad.

¡Gracias por la corrección. Ya funciona. :partying_face:

Hola, por favor, aclárenos: ¿el administrador puede ver las 20 características completas de cada usuario? ¿O solo una mezcla de números de huella digital incomprensibles?

¿Sería bienvenido un PR que haga que este plugin esté (opcionalmente) disponible también para los moderadores?

6 Me gusta

Veo una advertencia de depreciación de Ember para este plugin. Creo que tengo la última versión (2.0). ¿Se solucionará esto antes del Día de Ember5?

deprecate-shim.js:33 DEPRECACIÓN: [PLUGIN discourse-fingerprint-d4cc6751d9767c7e2e47d32cf0625d104e932618df8bdc6b57c6c1fb69c667ac] El uso del Ember Global está obsoleto. Deberías importar el módulo Ember o la API específica en su lugar. [id de depreciación: ember-global] Ver Ember.js - Deprecations para más detalles.
(anónimo) @ deprecate-shim.js:33

1 me gusta

Hola,

No estoy muy seguro de si fue la actualización completa de Discourse. Sin embargo, solía haber una parte donde encontraba automáticamente usuarios que usaban la misma dirección IP, etc., según lo previsto. Sin embargo, ahora está en blanco y tengo que buscar usuarios manualmente. Con más de 8.000 consumidores, esto no es bueno.

¿Se podría revisar esto, por favor, o va a caer en la categoría de roto?

También interesado en que este plugin funcione para identificar títeres de calcetín.

1 me gusta

¿Te refieres al plugin o a las funciones de administración de Discourse? Estamos en la versión 3.1.4 y Discourse sigue mostrándonos miembros que usan la misma dirección IP utilizando la herramienta de búsqueda de IP. ¿Es a eso a lo que te refieres con búsqueda manual?

Me interesa más saber si este plugin todavía funciona en la versión 3.1.