首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSS漏洞JSP页面中的<c:out>标记

问XSS漏洞JSP页面中的<c:out>标记
EN

Stack Overflow用户
提问于 2014-03-12 20:29:46
回答 2查看 11K关注 0票数 1

当我对我的项目JSP页面进行增强扫描时,fortify抱怨更多的XSS问题来修复页面。它抱怨大多数地方,比如:<c:out>语句。我尝试使用${fn:escapeXml(path)}在<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>中使用函数escapeXml,但这是按原样打印整个文本。

实际上,我在我的JSP中有如下代码。我想修复<C:out value="${cdt}"/>标签的XSS漏洞。

代码语言:javascript
复制
<c:set var="checked">
    checked="checked"
</c:set>
<c:set var="cdt" value="" />
<c:set var="dbt" value="" />

<c:choose>
    <c:when test="${casesForm.institutionRepresents == 'C'}">
        <c:set var="cdt" value="${checked}"/>
    </c:when>
    <c:when test="${casesForm.institutionRepresents == 'D'}">
        <c:set var="dbt" value="${checked}"/>
    </c:when>
</c:choose>

<div class="field LINK_show">
    <label><bean:message key="label.institutions" /></label>
    <div style="display:inline;padding-left:10px">
    <input type="radio" name="institutionRepresents" value="A" <c:out value="${cdt}" />><bean:message key="label.credit" /> 
    <input type="radio" name="institutionRepresents" value="I" <c:out value="${dbt}" />><bean:message key="label.debit" /> 
    </div>
</div>

有没有办法修复<c:out>标签中的XSS漏洞?

EN

回答 2

Stack Overflow用户

发布于 2014-03-12 22:01:36

<c:out>已经进行了html转义,但这通常不适合输出属性。如果用户可以控制cdt,他们可以修改属性名称或值,或者添加额外的属性。像空格这样的字符现在变成了元字符。

您使用它的方式是可以的,因为cdt的值不能由用户直接操作,而是从安全常量设置。只能为checked="checked"或为空。您可以禁用该值的转义,因为您希望将引号直接写为html。

票数 3
EN

Stack Overflow用户

发布于 2014-03-12 20:40:02

查看这篇关于XSS for <c:out>的文章

http://tech.finn.no/2011/04/08/xss-protection-whos-responsibility/

另外,这里有一个相关的问题,有一个很好的答案,应该会有所帮助。

JSP : JSTL's tag

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22351600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档