Skip to content

Commit c0e17a3

Browse files
authored
Merge pull request #429 from coheigea/AMQ-7231
AMQ-7231 - Fix XSS in WebConsole
2 parents 85851f7 + 81bd743 commit c0e17a3

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

activemq-web-console/src/main/webapp/browse.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
<td><a href="<c:url value="message.jsp">
5151
<c:param name="id" value="${row.JMSMessageID}" />
5252
<c:param name="JMSDestination" value="${requestContext.queueBrowser.JMSDestination}"/></c:url>"
53-
title="${row.properties}">${row.JMSMessageID}</a></td>
53+
title="<c:out value="${row.properties}"/>">${row.JMSMessageID}</a></td>
5454
<td><c:out value="${row.JMSCorrelationID}"/></td>
5555
<td><jms:persistent message="${row}"/></td>
5656
<td><c:out value="${row.JMSPriority}"/></td>

activemq-web-console/src/main/webapp/js/common.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,3 @@ function getEventTarget(e) {
106106
return targ;
107107
}
108108

109-
function confirmAction(id, url) {
110-
//TODO i18n messages
111-
var select = document.getElementById(id);
112-
var selectedIndex = select.selectedIndex;
113-
if (select.selectedIndex == 0) {
114-
alert("Please select a value");
115-
return;
116-
}
117-
var value = select.options[selectedIndex].value;
118-
url = url.replace(/%target%/gi, value);
119-
if (confirm("Are you sure?"))
120-
location.href=url;
121-
}

activemq-web-console/src/main/webapp/message.jsp

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ No message could be found for ID <c:out value="${requestContext.messageQuery.id}
151151
</tr>
152152
</c:if>
153153
<tr class="odd">
154-
<td><a href="<c:out value="javascript:confirmAction('queue', 'copyMessage.action?destination=%target%&JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue&secret=${sessionScope['secret']}"/>')">Copy</a></td>
154+
<td><a href="<c:out value="javascript:confirmAction('queue', 'copyMessage"/>')">Copy</a></td>
155155
<td rowspan="2">
156156
<select id="queue">
157157
<option value=""> -- Please select --</option>
@@ -165,7 +165,7 @@ No message could be found for ID <c:out value="${requestContext.messageQuery.id}
165165

166166
</tr>
167167
<tr class="odd">
168-
<td><a href="<c:out value="javascript:confirmAction('queue', 'moveMessage.action?destination=%target%&JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue&secret=${sessionScope['secret']}"/>')"
168+
<td><a href="<c:out value="javascript:confirmAction('queue', 'moveMessage"/>')"
169169
>Move</a></td>
170170
</tr>
171171
</tbody>
@@ -225,6 +225,22 @@ function selectOptionByText (selElem, selText) {
225225
}
226226
}
227227
228+
function confirmAction(id, action) {
229+
//TODO i18n messages
230+
var select = document.getElementById(id);
231+
var selectedIndex = select.selectedIndex;
232+
if (select.selectedIndex == 0) {
233+
alert("Please select a value");
234+
return;
235+
}
236+
var value = select.options[selectedIndex].value;
237+
var url = action + ".action?destination=" + value;
238+
url += "&JMSDestination=${requestContext.messageQuery.JMSDestination}";
239+
url += "&messageId=${row.JMSMessageID}&JMSDestinationType=queue&secret=${sessionScope['secret']}";
240+
if (confirm("Are you sure?"))
241+
location.href=url;
242+
}
243+
228244
window.onload=function() {
229245
sortSelect( document.getElementById('queue') );
230246
selectOptionByText( document.getElementById('queue'), "-- Please select --" );

0 commit comments

Comments
 (0)