Skip to content

Commit 27cdcd1

Browse files
authored
Merge pull request #545 from favicode/fix/js-xss
Fix javascript #544
2 parents f0491bb + 213368a commit 27cdcd1

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

Diff for: view/adminhtml/web/js/edge-acl.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ define([
66
"showErrorMessage",
77
"showSuccessMessage",
88
"Magento_Ui/js/modal/confirm",
9+
'underscore',
910
'mage/translate'
10-
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, showSuccessMessage, confirm) {
11+
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, showSuccessMessage, confirm, _) {
1112
return function (config, serviceStatus, isAlreadyConfigured) {
1213

1314
/* ACL button messages */
@@ -371,8 +372,8 @@ define([
371372
}
372373
let created_at = new Date(item.created_at);
373374
itemsHtml += '<tr><td>' +
374-
'<input name="value" data-type="acl" data-id="'+ item.id +'" value="'+ ip_output +'" class="input-text admin__control-text acl-items-field" type="text" disabled></td>' +
375-
'<td><input name="comment" data-type="acl" value="'+ item.comment +'" class="input-text admin__control-text acl-comment" type="text" disabled></td>' +
375+
'<input name="value" data-type="acl" data-id="'+ _.escape(item.id) +'" value="'+ _.escape(ip_output) +'" class="input-text admin__control-text acl-items-field" type="text" disabled></td>' +
376+
'<td><input name="comment" data-type="acl" value="'+ _.escape(item.comment) +'" class="input-text admin__control-text acl-comment" type="text" disabled></td>' +
376377
'<td><div class="admin__control-text dialog-item acl-date">' + created_at.toUTCString() + '</div></td>' +
377378
'<td class="col-actions">' +
378379
'<button class="action-delete fastly-edit-action edit_acl_item" title="Edit" type="button"><span>Edit</span></button>' +

Diff for: view/adminhtml/web/js/edge-dictionaries.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ define([
66
"showErrorMessage",
77
"showSuccessMessage",
88
"Magento_Ui/js/modal/confirm",
9+
'underscore',
910
'mage/translate'
10-
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, showSuccessMessage, confirm) {
11+
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, showSuccessMessage, confirm, _) {
1112
return function (config, serviceStatus, isAlreadyConfigured) {
1213

1314
/* Dictionary button messages */
@@ -341,8 +342,8 @@ define([
341342
if (response.dictionaryItems.length > 0) {
342343
$.each(response.dictionaryItems, function (index, item) {
343344
itemsHtml += '<tr><td>' +
344-
'<input name="key" value="'+ item.item_key +'" class="input-text admin__control-text dictionary-items-field" type="text" disabled></td>' +
345-
'<td><input name="value" data-type="dictionary" value="'+ item.item_value +'" class="input-text admin__control-text dictionary-items-field" type="text"></td>' +
345+
'<input name="key" value="'+ _.escape(item.item_key) +'" class="input-text admin__control-text dictionary-items-field" type="text" disabled></td>' +
346+
'<td><input name="value" data-type="dictionary" value="'+ _.escape(item.item_value) +'" class="input-text admin__control-text dictionary-items-field" type="text"></td>' +
346347
'<td class="col-actions">' +
347348
'<button class="action-delete fastly-save-action save_dictionary_item" title="Save" type="button"><span>Save</span></button>' +
348349
'<button class="action-delete remove_dictionary_item" title="Delete" type="button"><span>Delete</span></button>' +

Diff for: view/adminhtml/web/js/log-endpoints.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ define([
44
"overlay",
55
"resetAllMessages",
66
"showErrorMessage",
7+
'underscore',
78
'mage/translate',
89
'mage/validation'
9-
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage) {
10+
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, _) {
1011
return function (config, serviceStatus, isAlreadyConfigured) {
1112

1213
let active_version = serviceStatus.active_version;
@@ -102,7 +103,7 @@ define([
102103
html += '<option value="">no condition</option>';
103104
$.each(conditions, function (index, condition) {
104105
if (condition.type === "REQUEST") {
105-
html += '<option value="'+condition.name+'">'+condition.name+' ('+condition.type+') '+condition.statement+'</option>';
106+
html += '<option value="'+_.escape(condition.name)+'">'+_.escape(condition.name)+' ('+condition.type+') '+_.escape(condition.statement)+'</option>';
106107
}
107108
});
108109
}
@@ -121,10 +122,10 @@ define([
121122
$.each(endpoints, function (index, endpoint) {
122123
let html = '<tr>' +
123124
'<td>' +
124-
'<input value="' + endpoint.label + '" disabled="disabled" class="input-text" type="text"/>' +
125+
'<input value="' + _.escape(endpoint.label) + '" disabled="disabled" class="input-text" type="text"/>' +
125126
'</td>' +
126127
'<td class="col-actions">' +
127-
'<button class="action-delete fastly-edit-log-endpoint" type="button" title="Edit Log Endpoint" data-endpoint-type="' + endpoint.type + '" data-endpoint-name="' + endpoint.name + '"></button>' +
128+
'<button class="action-delete fastly-edit-log-endpoint" type="button" title="Edit Log Endpoint" data-endpoint-type="' + _.escape(endpoint.type) + '" data-endpoint-name="' + _.escape(endpoint.name) + '"></button>' +
128129
'</td>';
129130
$('#fastly-log-endpoints-list').append(html);
130131
});

Diff for: view/adminhtml/web/js/rate-limiting.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ define([
55
"resetAllMessages",
66
"showErrorMessage",
77
"showSuccessMessage",
8+
'underscore',
89
'mage/translate'
9-
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, showSuccessMessage) {
10+
], function ($, setServiceLabel, overlay, resetAllMessages, showErrorMessage, showSuccessMessage, _) {
1011
return function (config, serviceStatus, isAlreadyConfigured) {
1112

1213
let active_version = serviceStatus.active_version;
@@ -129,8 +130,8 @@ define([
129130
if (paths.length > 0) {
130131
$.each(paths, function (index, data) {
131132
pathsHtml += '<tr><td>' +
132-
'<input name="path[]" data-type="path" value="' + data.path + '" class="input-text admin__control-text path-field" type="text"></td>' +
133-
'<td><input name="comment[]" data-type="path" value="' + data.comment + '" class="input-text admin__control-text path-comment" type="text"></td>' +
133+
'<input name="path[]" data-type="path" value="' + _.escape(data.path) + '" class="input-text admin__control-text path-field" type="text"></td>' +
134+
'<td><input name="comment[]" data-type="path" value="' + _.escape(data.comment) + '" class="input-text admin__control-text path-comment" type="text"></td>' +
134135
'<td class="col-actions">' +
135136
'<button class="action-delete remove_path" title="Delete" type="button"><span>Delete</span></button>' +
136137
'</td></tr>';

0 commit comments

Comments
 (0)