跨站点脚本问题

时间:2012-12-13 14:36:49

标签: jsp jstl xss

要解决跨站点脚本问题,我使用以下代码来转义特殊字符:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
    <c:set var="linkParam" value="${fn:escapeXml(linkParam)}" />

运行代码时,我可以看到特殊字符在页面源中被转义:

    <a href='/result.jsp?name=O&#39;Neil'>O'Neil</a>

但是当点击链接时,浏览器仍然在地址栏中显示“/result.jsp?name=O'Neil”,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

此行为是设计使然 导航到链接时,浏览器将解码属性值。

但是,如果链接值包含%&等字符,您仍然需要网址 - 参数编码链接值。