mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 08:49:06 +08:00
FIX: Allow sanitized-HTML in GH issues and categories oneboxes. (#25374)
Follow-up to d78357917c
Related meta topic: https://meta.discourse.org/t/html-is-not-render-on-category-onebox-description/289424:
This commit is contained in:
parent
a37d26f559
commit
a709b7e861
|
@ -40,7 +40,10 @@ module Onebox
|
|||
body, excerpt = compute_body(raw["body"])
|
||||
ulink = URI(link)
|
||||
|
||||
labels = raw["labels"].map { |l| { name: Emoji.codes_to_img(CGI.escapeHTML(l["name"])) } }
|
||||
labels =
|
||||
raw["labels"].map do |l|
|
||||
{ name: Emoji.codes_to_img(Onebox::Helpers.sanitize(l["name"])) }
|
||||
end
|
||||
|
||||
{
|
||||
link: @url,
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
{{#description}}
|
||||
<div>
|
||||
<span class="description">
|
||||
<p>{{description}}</p>
|
||||
<p>{{{description}}}</p>
|
||||
</span>
|
||||
</div>
|
||||
{{/description}}
|
||||
|
|
|
@ -486,7 +486,7 @@ module Oneboxer
|
|||
name: category.name,
|
||||
color: category.color,
|
||||
logo_url: category.uploaded_logo&.url,
|
||||
description: category.description,
|
||||
description: Onebox::Helpers.sanitize(category.description),
|
||||
has_subcategories: category.subcategories.present?,
|
||||
subcategories:
|
||||
category.subcategories.collect { |sc| { name: sc.name, color: sc.color, url: sc.url } },
|
||||
|
|
|
@ -16,7 +16,7 @@ RSpec.describe Onebox::Engine::GithubIssueOnebox do
|
|||
describe "#to_html" do
|
||||
it "sanitizes the input and transform the emoji into an img tag" do
|
||||
sanitized_label =
|
||||
'Test <img src="/images/emoji/twitter/+1.png?v=12" title="+1" class="emoji" alt="+1" loading="lazy" width="20" height="20"> <style>body {display: none}</style>'
|
||||
'Test <img src="/images/emoji/twitter/+1.png?v=12" title="+1" class="emoji" alt="+1" loading="lazy" width="20" height="20">'
|
||||
|
||||
expect(html).to include(sanitized_label)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user