Defect #37237 » 0001-allow-select-custom-CSS-properties.patch
lib/redmine/wiki_formatting/common_mark/sanitization_filter.rb | ||
---|---|---|
27 | 27 |
"a" => %w(href).freeze, |
28 | 28 |
}.freeze |
29 | 29 | |
30 |
ALLOWED_CSS_PROPERTIES = %w[ |
|
31 |
color background-color |
|
32 |
width |
|
33 |
height |
|
34 |
padding padding-left padding-right padding-top padding-bottom |
|
35 |
margin margin-left margin-right margin-top margin-bottom |
|
36 |
border border-left border-right border-top border-bottom border-radius border-style border-collapse border-spacing |
|
37 |
font font-style font-variant font-weight font-stretch font-size line-height font-family |
|
38 |
text-align |
|
39 |
float |
|
40 |
].freeze |
|
41 | ||
30 | 42 |
def allowlist |
31 | 43 |
@allowlist ||= customize_allowlist(super.deep_dup) |
32 | 44 |
end |
... | ... | |
40 | 52 |
allowlist[:attributes][:all].delete("name") |
41 | 53 |
allowlist[:attributes]["a"].push("name") |
42 | 54 | |
55 |
allowlist[:attributes][:all].push("style") |
|
56 |
allowlist[:css] = { properties: ALLOWED_CSS_PROPERTIES } |
|
57 | ||
43 | 58 |
# allow class on code tags (this holds the language info from fenced |
44 | 59 |
# code bocks and has the format language-foo) |
45 | 60 |
allowlist[:attributes]["code"] = %w(class) |
test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb | ||
---|---|---|
93 | 93 |
# samples taken from the Sanitize test suite |
94 | 94 |
# rubocop:disable Layout/LineLength |
95 | 95 |
STRINGS = [ |
96 |
[ |
|
97 |
'<span style="color: #333; background: url(\'https://example.com/evil.svg\')">hello</span>"', |
|
98 |
'<span style="color: #333; ">hello</span>"' |
|
99 |
], |
|
96 | 100 |
[ |
97 | 101 |
'<b>Lo<!-- comment -->rem</b> <a href="pants" title="foo" style="text-decoration: underline;">ipsum</a> <a href="http://foo.com/"><strong>dolor</strong></a> sit<br/>amet <style>.foo { color: #fff; }</style> <script>alert("hello world");</script>', |
98 | 102 |
'<b>Lorem</b> <a href="pants" title="foo">ipsum</a> <a href="http://foo.com/"><strong>dolor</strong></a> sit<br>amet .foo { color: #fff; } ' |
- « Previous
- 1
- 2
- Next »