Ausleihbar führt eine strikte Content-Security-Policy ein (virtUOS/ausleihbar#44, aktuell nur beobachtend; scharf geschaltet wird in virtUOS/ausleihbar#45). Die policy erlaubt style-src 'self' ohne 'unsafe-inline'.
Problem: RichTextEditor aus @basicbar/ui (TipTap 3) hängt beim Mounten selbst ein <style data-tiptap-style> in den <head>, mit den ProseMirror-Basisregeln (.ProseMirror { position: relative; white-space: pre-wrap; … }). Unter der Report-Only-CSP entsteht so auf jeder Seite mit Editor eine style-src-elem inline-Verletzung. Das ist die einzige, die in Ausleihbar noch übrig ist. Sobald die CSP scharf ist, würde der Browser das Stylesheet blockieren, und der Editor verlöre seine Grundstyles (z. B. Umbruchverhalten).
Vorschlag
- In
useEditor(...) die Option injectCSS: false setzen.
- Die bisher injizierten Basisregeln als Datei ausliefern, z. B. in
base.css (das Ausleihbar schon per @import "@basicbar/ui/base.css" einbindet) oder als eigenes @basicbar/ui/rich-text.css. Quelle ist TipTaps style.ts.
- Im README festhalten, dass
@basicbar/ui keine Inline-Styles oder -Skripte injiziert (CSP-tauglich), und dass Konsumenten das CSS einbinden müssen, falls es nicht in base.css steckt.
- Release als ui 0.5.1 (Fix). Danach übernimmt Ausleihbar die Version und prüft mit der Report-Only-CSP, dass keine Verletzung mehr gemeldet wird.
Fertig, wenn ein Editor ohne <style data-tiptap-style> gleich aussieht und sich gleich verhält wie vorher (Zeilenumbrüche, Platzhalter, Auswahl von Bildern), und die Report-Only-CSP in Ausleihbar keine style-src-elem-Verletzung mehr meldet.
Ausleihbar führt eine strikte Content-Security-Policy ein (virtUOS/ausleihbar#44, aktuell nur beobachtend; scharf geschaltet wird in virtUOS/ausleihbar#45). Die policy erlaubt
style-src 'self'ohne'unsafe-inline'.Problem:
RichTextEditoraus@basicbar/ui(TipTap 3) hängt beim Mounten selbst ein<style data-tiptap-style>in den<head>, mit den ProseMirror-Basisregeln (.ProseMirror { position: relative; white-space: pre-wrap; … }). Unter der Report-Only-CSP entsteht so auf jeder Seite mit Editor einestyle-src-elem inline-Verletzung. Das ist die einzige, die in Ausleihbar noch übrig ist. Sobald die CSP scharf ist, würde der Browser das Stylesheet blockieren, und der Editor verlöre seine Grundstyles (z. B. Umbruchverhalten).Vorschlag
useEditor(...)die OptioninjectCSS: falsesetzen.base.css(das Ausleihbar schon per@import "@basicbar/ui/base.css"einbindet) oder als eigenes@basicbar/ui/rich-text.css. Quelle ist TipTapsstyle.ts.@basicbar/uikeine Inline-Styles oder -Skripte injiziert (CSP-tauglich), und dass Konsumenten das CSS einbinden müssen, falls es nicht inbase.csssteckt.Fertig, wenn ein Editor ohne
<style data-tiptap-style>gleich aussieht und sich gleich verhält wie vorher (Zeilenumbrüche, Platzhalter, Auswahl von Bildern), und die Report-Only-CSP in Ausleihbar keinestyle-src-elem-Verletzung mehr meldet.