إجبار Discourse على عدم زيارة رابط

مرحبًا،

أنا أستخدم واجهة برمجة التطبيقات (API) لإنشاء الرسائل الخاصة (PMs). يمكن أن يحتوي المحتوى على HTML وروابط أيضًا. من بين هذه الروابط، بعضها عبارة عن روابط إجراء بنقرة واحدة. مثال على رابط عادي: <a href="https://" target="_blank">..</a>

المشكلة هي أن Discourse يزور أي روابط ويطلق إجراءات النقرة الواحدة هذه.

كيف تمنع ذلك؟ لست متأكدًا من الميزة المسؤولة عن ذلك.
هل هناك تلميح مسموح به يمكننا إدراجه في HTML لإخبار Discourse بتجاهل رابط معين؟
أم أن هناك خيارًا فاتني؟

ملاحظة: حاليًا أضفت فحصًا في الخلفية لتجاهل زيارة Discourse، ولكن إذا أمكن، أود تجنب الاعتماد على ذلك.

شكرًا لك!

لا يُفترض برمجة رابط يؤدي إلى إجراء بمجرد زيارته، إذ يُعتبر ذلك على نطاق واسع قابلاً للاستغلال بطرق مختلفة. يجب أن يوافق المستخدم صراحةً على الإجراء.

السياق هو في الأساس أن المستخدمين يشتركون في الإشعارات، ولأسباب قانونية، يُطلب منك إضافة روابط تتيح لهم إلغاء الاشتراك من الإشعار الحالي أو من جميع الإشعارات. يجب أن تكون هذه الروابط محددة قابلة للتنفيذ بنقرة واحدة دون الحاجة إلى خطوات إضافية (مثل تسجيل الدخول أو التأكيد). تستخدم هذه الروابط رمزًا مولَّدًا ولا يمكن استغلالها. سيرى المستخدمون الرسالة التي تحتوي على هذه الروابط في صندوق ورودهم الخاص (مثل Discourse أو خدمات أخرى مثل Gmail)، والتأكيد غير مرغوب فيه في هذه الحالة ولن يفيد.

لا يزال سؤالي قائمًا: هل هناك طريقة لإخبار Discourse بعدم زيارة رابط معين؟ إما عبر HTML أو عبر الخيارات؟

بغض النظر عن السياق، من المثير للاهتمام معرفة ذلك. وإذا لم تكن هذه الميزة موجودة، فسيكون من موضع ترحيب وجود خيار لحظر نطاقات أو عناوين URL معينة لتجنب الطلبات غير الضرورية.

مرة أخرى: لا يمكنك فعل ذلك. هناك أيضًا متصفحات (وإضافات) ومضادات فيروسات تقوم بزيارة/تحميل الروابط التي تواجهها في الصفحة مسبقًا.

أي طلب يؤدي إلى تغيير فعلي على الخادم يجب أن يكون طلب POST وفقًا لمواصفات HTTP. لذا، إذا كان لديك رابط، فيجب أن يوجه إلى صفحة ويب تحتوي على زر يقوم بتنفيذ طلب POST. أي طريقة أخرى ستؤدي إلى مشاكل غامضة.

من يقول إنها يجب أن تكون كذلك؟ من الشائع جدًا أن تؤدي روابط إلغاء الاشتراك إلى صفحة ويب للتأكيد - وذلك للسبب الذي ذكرته أعلاه.

في الواقع، هذا سببٌ قوي جدًا. لم أفكر في ذلك. :thinking:

أولاً وقبل كل شيء، عميلي. :smile:
في الواقع، قمت بإعداد نموذج أولاً، لكنه أراد رابط إجراء بنقرة واحدة.

لكنك أشرت إلى نقطة صحيحة جدًا، شكرًا لك على توجيه انتباهي إليها!