External Link Shield – Conferma di uscita e Trust Gating

:information_source: Riepilogo Questo componente tema aggiunge una protezione configurabile per i link esterni nei post elaborati. Applica regole basate sul livello di fiducia, reindirizzamenti opzionali di accesso e informazioni e indicatori visivi per i domini attendibili, oltre a una modale di conferma di uscita personalizzabile.
:eyeglasses: Anteprima Theme Creator
:hammer_and_wrench: Repository https://github.com/VaperinaDEV/external-link-shield
:question: Guida all’installazione Come installare un tema o un componente tema
:open_book: Nuovo ai temi di Discourse? Guida per principianti all’utilizzo dei temi di Discourse

Installa questo componente tema

Ciao :waving_hand:

Vorrei condividere un Componente Tema che aggiunge un controllo granulare sui link esterni nei post elaborati, combinando:

  • controllo degli accessi basato sul livello di fiducia
  • protezione per gli utenti anonimi
  • una modale di conferma di uscita personalizzata
  • e indicatori visivi per domini attendibili rispetto a domini sconosciuti

Questo componente è progettato per comunità in cui i link esterni possono comportare implicazioni legali, di sicurezza o di fiducia.


:sparkles: Funzionalità

:gear: Regole di livello di fiducia configurabili

Tutti i comportamenti basati sul livello di fiducia sono completamente configurabili tramite le impostazioni del tema.

È possibile abilitare o disabilitare indipendentemente:

  • il blocco degli utenti anonimi
  • la sostituzione informativa per TL0
  • il requisito di rivelazione manuale per TL1
  • la modale di conferma di uscita per livelli di fiducia più elevati

Ciò consente al componente di adattarsi a politiche comunitarie molto diverse, da una rigorosa protezione dei link a un minimo attrito per l’utente.

:locked_with_key: Link esterni consapevoli del livello di fiducia

I link esterni si comportano in modo diverso a seconda del livello di fiducia dell’utente che visualizza:

  • Utenti anonimi
    • I link esterni vengono sostituiti con un link di accesso o un URL personalizzato definito nelle impostazioni.
  • TL0
    • I link vengono sostituiti con un reindirizzamento configurabile, ad esempio un argomento che spiega i livelli di fiducia o qualsiasi altro URL definito nelle impostazioni.
  • TL1
    • I link richiedono la rivelazione manuale (clicca per visualizzare), quindi facendo clic sul link viene visualizzata la modale di conferma di uscita.
  • TL2+
    • I link si comportano normalmente ma mostrano sempre una modale di conferma di uscita.

:door: Modale di conferma di uscita

Prima di lasciare il forum, gli utenti vedono una modale che:

  • Indica chiaramente che stanno lasciando la comunità
  • Mostra l’URL di destinazione completo nei tag <code>
  • Rispetta la preferenza dell’utente external_links_in_new_tab

Questo è particolarmente utile per:

  • comunità con requisiti di conformità elevati
  • mitigazione del phishing
  • educazione degli utenti meno esperti


:magnifying_glass_tilted_left: Comportamento basato sul dominio tramite impostazioni

Il componente introduce due impostazioni del tema:

internal_domains:
  type: list
  default: ""
  description: "I domini del tuo forum e CDN (es. example.com|example-cdn.com). Questi non avranno icona né modale."

excluded_domains:
  type: list
  default: ""
  description: "Domini esterni attendibili (es. youtube.com|google.com). Questi mostreranno un'icona a LUPPO ma salteranno la modale/protezione."
  • Domini interni
    • Trattati come interni → nessuna icona, nessuna modale
  • Domini esclusi (attendibili)
    • Mostrano un’icona a :locked: lucchetto
    • Saltano il controllo del livello di fiducia e la modale
  • Tutti gli altri link esterni
    • Mostrano un’icona di link esterno
    • Sono soggetti a controllo e/o conferma a seconda del livello di fiducia

:artist_palette: Indicatori visivi (SCSS)

Le icone vengono aggiunte puramente tramite CSS:

  • Link esterni sconosciuti → icona di link esterno
  • Link esterni attendibili → icona a lucchetto (colore di successo)

Ciò mantiene pulito il DOM ed evita l’iniezione di icone basata su JS.

Questo screenshot mostra come il componente distingue visivamente tra:

  • Domini esclusi: link esterni attendibili (icona a lucchetto, nessuna conferma di uscita),
  • Domini interni: link interni (nessuna icona, nessuna conferma di uscita),
  • link esterni sconosciuti (icona di link esterno con conferma di uscita).

:pushpin: Casi d’uso

Questo componente è utile se si desidera:

  • Proteggere gli utenti da link esterni non sicuri o fuorvianti
  • Educare i nuovi utenti prima di consentire loro di lasciare il forum
  • Applicare la progressione della fiducia della comunità
  • Aggiungere disclaimer legali/di conformità senza interrompere l’UX
6 Mi Piace

Componente tema fantastico!!!

In realtà abbiamo costruito qualcosa di simile in cui nascondiamo anche i badge del conteggio dei clic e li sostituiamo con badge verificati/pericolo.

Lo abbiamo utilizzato principalmente per i nostri fornitori e commercianti verificati/affidabili con cui abbiamo una partnership di affiliazione.

Inoltre, il nostro popup visualizza anche codici coupon gestiti tramite l’editor delle impostazioni dell’oggetto del componente tema.

2 Mi Piace