بصمة الخطاب - مكون إضافي لبصمة المتصفح

هناك الكثير من المتصيدون الذين يتمتعون بكفاءة تقنية مقارنة بأعضاء المنتدى العاديين. بعض منهم يشبه الصراصير الصامدة.

إعجاب واحد (1)

يبدو أن متصفح Google Chrome على وشك أن يسير على خطى Mozilla Firefox. أتذكر أنني قرأت مقالًا يتعلق بـ Google Chrome وحظر بصمة التتبع، لكنني لا أستطيع العثور عليه في الوقت الحالي. بغض النظر، فإن هذا مؤشر على ما هو قادم. هل يعني ذلك فعليًا نهاية هذا الإضافة؟
https://9to5google.com/2021/03/03/google-chrome-third-party-cookies/
https://9to5google.com/2021/01/25/google-privacy-sandbox-2021-update/

4 إعجابات

الآن، لا يظهر أي شيء في آخر المباريات،

أحصل على هذا في سجل الأخطاء:

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>'

تم التحديث إلى 2.8.0.beta1

لا يزال هذا الخطأ يظهر في سجل الأخطاء، ولا يظهر أي شيء على صفحة الإضافة.

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>'

يحتاج هذا على الأرجح إلى بعض الاهتمام من @sam لتحديثه. هل يجب أن نضع علامة عليه بأنه معطل مؤقتًا؟

أعتقد أنه شبه مُهمَل من وجهة نظري لأن ما يحاول تحقيقه أمر صعب للغاية. ما رأيك يا @dan؟

5 إعجابات

إما أن بصمتي تعمل الآن أو أنني أفتقد شيئًا ما، هل لا تظهر البصمات حتى في حال عدم وجود تعارض؟

(كذلك النص يبدو غريبًا: “لم تُعثر على توقيع مشابه.”)

لا توجد نتائج

والإعدادات تم إجراؤها منذ حوالي أسبوع

هل أخطأت في فهم كيفية عمل هذا أم أنني بحاجة إلى معالجة شيء ما؟

هل هناك أحد؟

إعجاب واحد (1)

لا يعمل على الإصدار 2.7.4. لقد قمت بالتحقق يوميًا لأكثر من أسبوعين، ويظهر نفس قائمة المستخدمين في كل مرة.

إعجاب واحد (1)

هذا هو المسمار الأخير في التابوت.
https://9to5mac.com/2021/07/08/advertisers-concerned-icloud-private-relay-could-put-an-end-to-fingerprinting/

3 إعجابات

نفس المشكلة.

لا يعمل في 2.8.0.beta2 أيضًا. يُظهر آخر ظهور عندما كان المستخدم آخر ظهور له في 26 مايو عندما أرى ذلك في هذا البرنامج المساعد.

كنت أظن أن المشكلة تخصني فقط.

إعجاب واحد (1)

لم يتم تحميل سكريبت Fingerprintjs2 بعد تحديثه إلى أحدث إصدار. لقد دفعت إصلاحًا، ومن المفترض أن يعمل بشكل جيد الآن. آسف على المشاكل!

على مر الوقت، كان هناك العديد من المسمار في التابوت، ولا تزال هناك طرق لتعريف المتصفحات. من خلال التصفح السريع للمقال الذي ربطت به، يبدو أنه مجرد طريقة لإخفاء عنوان IP للمستخدم، وللأسف هذا يعني أن التعرف على البصمة لا يزال ممكنًا (لأنه يعتمد أكثر على خصائص المتصفح بدلاً من عنوان IP).

5 إعجابات

هل فاتني تمكين إذن ما أم ماذا؟

لم يعمل لدي حتى الآن

شكرًا لك على مساعدتك

هناك طريقة لإعادة توظيف الإضافة لتعمل مع معلومات الخادم فقط.

أُوصيت بهذه الإضافة في Discourse check the user IP for block list only on login. لا يهتم نظام Discourse حقًا بعنوان IP للمستخدمين، ولا يحظر المستخدمين بناءً على عنوان IP افتراضيًا (تحتاج إلى القيام بذلك يدويًا)، أما بالنسبة للمستخدمين الجدد الذين يحملون نفس عنوان IP لحساب محظور، فيمكن اكتشافهم بالصدفة فقط. لم تكن إضافة البصمة مفيدة لي حقًا لأنها لا تفحص عنوان IP أيضًا.

ستكون صفحة عامة تعرض المستخدمين الذين يتطابق عنوان IP الخاص بهم مع الحسابات المحظورة مفيدة جدًا.

كما توجد خدمات مثل https://ip-api.com/ تتيح التحقق مما إذا كان عنوان IP يمثل وسيطًا أو شبكة افتراضية خاصة (VPN)، ويمكن أن تكون أداة مفيدة أخرى.

إلى جانب عنوان IP، يمتلك Discourse أيضًا عنوان بريد إلكتروني للمستخدم. غالبًا ما أرى متطفلين يستخدمون عناوين بريد إلكتروني من خدمات البريد المؤقت، وهذا يمكن أن يكون مؤشرًا على مستخدم سيئ أيضًا.

على أي حال، أصبح التتبع البصري أصعب وأصعب في هذه الأيام. لا أستطيع تخيل أنه سيظل ممكنًا لفترة أطول بسبب الشركات والأشخاص الذين يهتمون بخصوصيتهم.

شكرًا على الإصلاح. يعمل الآن. :partying_face:

مرحبًا، يرجى التوضيح: هل يمكن للمدير رؤية جميع الخصائص العشرين لكل مستخدم؟ أم أنه يرى فقط أرقام بصمة مختلطة وغير مفهومة؟

هل سيكون طلب السحب موضع ترحيب لجعل هذه الإضافة (اختياريًا) متاحة للمشرفين أيضًا؟

6 إعجابات

أرى تحذيرًا بشأن إيقاف استخدام Ember لهذا المكون الإضافي. أعتقد أن لدي أحدث إصدار (2.0). هل سيتم إصلاح هذا قبل يوم Ember5؟

deprecate-shim.js:33 تحذير: [PLUGIN discourse-fingerprint-d4cc6751d9767c7e2e47d32cf0625d104e932618df8bdc6b57c6c1fb69c667ac] تم إيقاف استخدام Ember Global. يجب عليك استيراد وحدة Ember أو واجهة برمجة التطبيقات المحددة بدلاً من ذلك. [معرف التحذير: ember-global] انظر Ember.js - Deprecations لمزيد من التفاصيل.
(anonymous) @ deprecate-shim.js:33

إعجاب واحد (1)

مرحباً،

لست متأكداً تماماً مما إذا كان ذلك بسبب تحديث الخطاب بالكامل. ومع ذلك، كان هناك جزء كان يحدد تلقائياً المستخدمين الذين يستخدمون نفس عنوان IP، وما إلى ذلك، كما هو مقصود. ومع ذلك، فهو الآن فارغ، ويتعين علي البحث عن المستخدمين يدوياً. مع وجود أكثر من 8000 مستهلك، هذا ليس جيداً.

هل يمكن النظر في هذا، من فضلك، أم أنه سيقع في فئة “معطل”؟

مهتم أيضًا بهذه الإضافة للتعرف على الحسابات الوهمية.

إعجاب واحد (1)

هل تقصد المكون الإضافي، أم ميزات مسؤول Discourse؟ نحن على 3.1.4 وتستمر Discourse في إظهار الأعضاء الذين يستخدمون نفس عنوان IP باستخدام أداة البحث عن عنوان IP. هل هذا ما تقصده بالبحث اليدوي؟

أنا مهتم أكثر بمعرفة ما إذا كان هذا المكون الإضافي لا يزال يعمل على 3.1.