要解决跨站点脚本问题,我使用以下代码来转义特殊字符:
<%@ 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'Neil'>O'Neil</a>
但是当点击链接时,浏览器仍然在地址栏中显示“/result.jsp?name=O'Neil”,有什么想法吗?
答案 0 :(得分:0)
此行为是设计使然 导航到链接时,浏览器将解码属性值。
但是,如果链接值包含%
或&
等字符,您仍然需要网址 - 参数编码链接值。