Utilizziamo l’embedding di Discourse per Jekyll su New ROOT Web Site! - ROOT e funziona perfettamente! A meno che il browser non stia sopprimendo l’intestazione Referer:, nel qual caso otteniamo un errore 400 Bad Request. Provate voi stessi: se passate a una finestra privata di Firefox (che sopprime i referrer), l’embedding si rompe. Lo stesso vale per Safari, che sembra essere un po’ più rigoroso nella concessione dei referrer.
Ho verificato controllando New ROOT Web Site! - Blog - ROOT Forum in una finestra privata di Firefox, che mi restituisce un HTTP 400; poi modificando la richiesta per aggiungere Referer: https://root.cern/blog/new-web-site/ e il 400 diventa un 200 di successo.
Abbiamo abilitato “embed any origin”. Abbiamo commenti per esattamente un sito di embedding. Esiste un modo per farlo funzionare?
È interessante notare che i commenti incorporati su https://blog.codinghorror.com/the-cloud-is-just-someone-elses-computer/ funzionano senza problemi in una finestra privata di Firefox. Potrebbe il problema essere legato al dominio? Il tuo blog si trova su root.cern e il tuo modulo su root-forum.cern.ch.
Grazie per aver esaminato la questione! Potrebbe benissimo essere correlato alla differenza nei nomi di dominio: potrei immaginare che i browser forniscano i referrer per una richiesta allo stesso dominio, ma non a un dominio diverso. Tuttavia, sebbene ciò sia interessante, non vedo ancora cosa possiamo fare per risolvere il problema: non potremo utilizzare root.cern come dominio del forum, e quell’incorporamento cross-domain sembrava una funzionalità chiave e super utile… È semplicemente a rischio in questi tempi, data la maggiore attenzione alla privacy, o riesci a pensare a una soluzione?
Qualcosa che potrei voler provare è l’uso di un reverse proxy da root.cern/forum a root-forum.cern.ch. In questo modo, l’incorporamento può essere eseguito come se fosse sullo stesso host, e manteniamo il referrer…? Torno presto a parlarti
Per l’incorporamento tra siti diversi, nelle pagine di incorporamento, aggiungi uno dei seguenti:
<meta name="referrer" content="strict-origin"> con Path Allowlist impostato su /.* (poiché non verrà fornito alcun percorso), oppure
<meta name="referrer" content="no-referrer-when-downgrade"> con l’effettiva Path Allowlist.
Come menzionato in Referrer-Policy header - HTTP | MDN, “c’è uno sforzo da parte dei browser per passare a un valore predefinito più restrittivo”, e l’incorporamento di Discourse si basa sul vecchio valore predefinito per l’incorporamento tra host diversi.
Solo un avvertimento, Tejas: per quanto ne so, senza il tag meta, Safari e Firefox/Modalità privata sopprimono completamente l’header Referer. Ciò che suggerisci potrebbe funzionare per Chrome >= 85, ma aggiungere il tag meta sembra più robusto e generale; sospetto inoltre che sia sufficientemente semplice per la maggior parte degli embedding.