Content Security Policy del widget
Les directives exactes de Content Security Policy que necessita el widget de Feedjolt: script, connect, frame, img, style i font, mes un exemple de CSP estricta.
Si el teu lloc té una Content Security Policy estricta, el widget necessita permisos explícits. Sense ells, el script del loader, l'iframe i les peticions d'assets seran bloquejats.
Directives mínimes
script-src https://www.feedjolt.com
connect-src https://www.feedjolt.com
frame-src https://www.feedjolt.com
img-src https://cdn.feedjolt.com data: blob:
style-src 'unsafe-inline'
font-src https://www.feedjolt.com data:Si ja fas servir default-src 'self', les directives de dalt són addicions - no reemplacen les existents.
Notes per directiva
script-src
El loader del widget es descarrega de feedjolt.com. És un únic script petit; el JS de l'iframe és dins l'iframe i fa servir la seva pròpia CSP.
Si requereixes nonces per a scripts inline (sense 'unsafe-inline'), el loader és extern - no cal nonce. No has d'etiquetar el loader amb un nonce.
connect-src
El loader fa alguns pings de telemetria (esdeveniments d'obertura/tancament per al nostre logging anti-abús) a feedjolt.com. Les crides API de l'iframe ocorren dins l'iframe i fan servir la seva pròpia CSP, no la teva.
frame-src
L'iframe és <iframe src="https://www.feedjolt.com/widget?...">. Sense això, l'iframe es bloqueja a la capa de framing i el widget mai s'obre.
img-src
Els logos de l'espai, els adjunts de posts i les captures del changelog se serveixen des de cdn.feedjolt.com. data: i blob: cobreixen les icones SVG i les imatges pujades durant la previsualització.
style-src
El script del loader injecta un petit bloc <style> per posicionar el botó. Si no pots permetre 'unsafe-inline', hi ha un fallback - amaga el nostre botó amb el teu propi CSS i crida window.feedjolt.open() des del teu botó personalitzat.
font-src
El widget fa servir Geist com a font per defecte. Dins l'iframe, les fonts vénen de feedjolt.com.
Exemple de CSP estricta
Una CSP de producció completa que permet el widget:
default-src 'self';
script-src 'self' 'nonce-{NONCE}' https://www.feedjolt.com;
connect-src 'self' https://www.feedjolt.com https://la-teva-api.com;
frame-src https://www.feedjolt.com https://challenges.cloudflare.com;
img-src 'self' data: blob: https://cdn.feedjolt.com https://el-teu-cdn.com;
font-src 'self' data: https://www.feedjolt.com;
style-src 'self' 'unsafe-inline';
form-action 'self';
base-uri 'self';
object-src 'none';
frame-ancestors 'none';
upgrade-insecure-requests;frame-ancestors 'none' està bé - controla qui et pot embedir, no què pots embedir tu.
CSP en mode report-only
Recomanem encaridament córrer CSP en report-only mentre integres, després promoure a enforce després d'una setmana neta de reports.
Content-Security-Policy-Report-Only: script-src ...; report-uri https://el-teu-csp-collector;Si el nostre domini apareix en un report de violació, has trobat una directiva que et falta. Afegeix-la; torna a provar.
Subresource Integrity (SRI)
Actualment no proporcionem hashes SRI estables per a widget-loader.js perquè el loader s'actualitza contínuament. Si necessites SRI per compliment, recomanem allotjar una còpia fixada del loader al teu propi CDN i actualitzar-la en un calendari controlat.
Això és un compromís: un loader fixat té SRI estricte; t'assumeixes la responsabilitat de tirar d'actualitzacions. Compartirem builds firmats sota petició.
Trusted Types
Si fas servir la CSP Trusted Types, el loader del widget no assigna directament a innerHTML; el contingut de l'iframe es carrega via atribut src estàndard. No hauries de necessitar una política Trusted Types per al widget.
Errors comuns
script-src 'self'només. El loader és afeedjolt.com, no a'self'. Afegeix l'origen explícit.- Oblidar
frame-src. Sense això, l'iframe mai carrega. El botó funciona però fer-hi clic no fa res. img-src 'self'només. Els logos i les imatges pujades vénen decdn.feedjolt.com. Apareixeran com a icones trencades.- Activar CSP sense provar. Sempre va primer report-only.
CORS / cross-origin
El widget fa peticions cross-origin des de la teva pàgina a feedjolt.com. Manegem CORS al servidor; tu no has de configurar res. Si veus un error de CORS a la consola, sol ser CSP malament reportada - revisa la teva CSP primer.
Personalització del widget
Què pots personalitzar al widget de Feedjolt: text, posició i color del llançador, més atributs de tema i tauler per defecte a l'etiqueta d'incrustació.
Webhooks per a desenvolupadors
Referencia tecnica dels webhooks de Feedjolt: que entreguem, les capcaleres i el temps limit, verificar signatures, ser idempotent i gestionar errors d'entrega.
