diff --git a/src/main/java/org/owasp/html/CssSchema.java b/src/main/java/org/owasp/html/CssSchema.java index e0e9015a..afd5203f 100644 --- a/src/main/java/org/owasp/html/CssSchema.java +++ b/src/main/java/org/owasp/html/CssSchema.java @@ -424,6 +424,8 @@ Property forKey(String propertyName) { "auto", "inherit", "none"); Set overflowLiterals0 = Set.of( "auto", "hidden", "inherit", "scroll", "visible"); + Set overflowWrapLiterals0 = Set.of( + "normal", "break-word", "anywhere", "inherit"); Set overflowXLiterals0 = Set.of( "no-content", "no-display"); Set overflowXLiterals1 = Set.of( @@ -668,6 +670,7 @@ Property forKey(String propertyName) { Property opacity = new Property(1, mozOpacityLiterals0, zeroFns); builder.put("opacity", opacity); builder.put("overflow", new Property(0, overflowLiterals0, zeroFns)); + builder.put("overflow-wrap", new Property(0, overflowWrapLiterals0, zeroFns)); @SuppressWarnings("unchecked") Property overflowX = new Property( 0, union(overflowXLiterals0, overflowXLiterals1), zeroFns); diff --git a/src/test/java/org/owasp/html/HtmlPolicyBuilderTest.java b/src/test/java/org/owasp/html/HtmlPolicyBuilderTest.java index 0f49540f..6655e5c8 100644 --- a/src/test/java/org/owasp/html/HtmlPolicyBuilderTest.java +++ b/src/test/java/org/owasp/html/HtmlPolicyBuilderTest.java @@ -1029,6 +1029,38 @@ public static final void testSkipAndRequireRels() { pf.sanitize("eg")); } + @Test + public static final void testOverflowWrap() { + PolicyFactory pf = new HtmlPolicyBuilder() + .allowElements("span") + .allowStyling(CssSchema.union(CssSchema.DEFAULT, CssSchema.withProperties(List.of("overflow-wrap")))) + .toFactory(); + + assertEquals( + "Something", + pf.sanitize("Something")); + + assertEquals( + "Something", + pf.sanitize("Something")); + + assertEquals( + "Something", + pf.sanitize("Something")); + } + + @Test + public static final void testOverflowWrapNotAllowed() { + PolicyFactory pf = new HtmlPolicyBuilder() + .allowElements("span") + .allowStyling() + .toFactory(); + + assertEquals( + "Something", + pf.sanitize("Something")); + } + @Test public static final void testExplicitRelsSkip() { PolicyFactory pf = new HtmlPolicyBuilder()