mirror of
https://github.com/redmine/redmine.git
synced 2025-11-11 15:56:03 +01:00
Fix that inline issue auto complete does not sanitize HTML tags (#33846).
Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@20827 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -1,6 +1,12 @@
|
|||||||
/* Redmine - project management software
|
/* Redmine - project management software
|
||||||
Copyright (C) 2006-2020 Jean-Philippe Lang */
|
Copyright (C) 2006-2020 Jean-Philippe Lang */
|
||||||
|
|
||||||
|
function sanitizeHTML(string) {
|
||||||
|
var temp = document.createElement('span');
|
||||||
|
temp.textContent = string;
|
||||||
|
return temp.innerHTML;
|
||||||
|
}
|
||||||
|
|
||||||
function checkAll(id, checked) {
|
function checkAll(id, checked) {
|
||||||
$('#'+id).find('input[type=checkbox]:enabled').prop('checked', checked);
|
$('#'+id).find('input[type=checkbox]:enabled').prop('checked', checked);
|
||||||
}
|
}
|
||||||
@@ -1161,6 +1167,9 @@ function inlineAutoComplete(element) {
|
|||||||
selectTemplate: function (issue) {
|
selectTemplate: function (issue) {
|
||||||
return '#' + issue.original.id;
|
return '#' + issue.original.id;
|
||||||
},
|
},
|
||||||
|
menuItemTemplate: function (issue) {
|
||||||
|
return sanitizeHTML(issue.original.label);
|
||||||
|
},
|
||||||
noMatchTemplate: function () {
|
noMatchTemplate: function () {
|
||||||
return '<span style:"visibility: hidden;"></span>';
|
return '<span style:"visibility: hidden;"></span>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,4 +151,17 @@ class InlineAutocompleteSystemTest < ApplicationSystemTestCase
|
|||||||
end
|
end
|
||||||
assert_equal '[[Page_with_sections]] ', find('#issue_description').value
|
assert_equal '[[Page_with_sections]] ', find('#issue_description').value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_inline_autocomplete_for_issues_should_escape_html_elements
|
||||||
|
issue = Issue.generate!(subject: 'This issue has a <select> element', project_id: 1, tracker_id: 1)
|
||||||
|
|
||||||
|
log_user('jsmith', 'jsmith')
|
||||||
|
visit 'projects/1/issues/new'
|
||||||
|
|
||||||
|
fill_in 'Description', :with => '#This'
|
||||||
|
|
||||||
|
within('.tribute-container') do
|
||||||
|
assert page.has_text? "Bug ##{issue.id}: This issue has a <select> element"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user