diff --git a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItem.java b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItem.java index 173423d9..d57d7c09 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItem.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItem.java @@ -38,8 +38,11 @@ public class JourneyItem { @JsonIgnore private Document document; - // CWE-79 tripwire: plain text — store verbatim, no sanitization. Any HTML/feed/PDF/email - // renderer MUST escape this; only Svelte {note} is auto-safe. + /** + * Plain text — not HTML-sanitized. Renderers MUST NOT use {@code @html} or equivalent unsafe output. + * + *

CWE-79 tripwire: stored verbatim; only Svelte {note} interpolation is auto-safe.

+ */ @Column(columnDefinition = "TEXT") private String note; diff --git a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItemView.java b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItemView.java index 141860af..1e443299 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItemView.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/journeyitem/JourneyItemView.java @@ -12,5 +12,6 @@ public record JourneyItemView( @Schema(requiredMode = Schema.RequiredMode.REQUIRED) UUID id, @Schema(requiredMode = Schema.RequiredMode.REQUIRED) int position, DocumentSummary document, + /** Plain text — not HTML-sanitized. Renderers MUST NOT use {@code @html} or equivalent unsafe output. */ String note ) {}