0

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

    <%@ 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',知道吗?

4

1 回答 1

0

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

但是,您仍然需要对链接值进行URL -parameter-encode,以防它包含类似%or的字符&

于 2012-12-13T14:38:06.887 回答