在没有转义的情况下从URL显示参数是危险的吗?

时间:2016-02-11 04:45:30

标签: html spring jsp security web

说我在Spring环境中,我有一个URL http://www.example.com/name=alice

在控制器中,我有类似的代码,

mav.addObject("name", request.getParameter("name"));

在JSP文件中,它呈现为

<div><c:out value="${name}" /></div>

我的问题是,

  1. 如果恶意用户附加了错误的字符串,例如,网址中的短脚本(例如http://www.example.com/name={some bad script}<c:out>会保护我,我的理解是否正确?
  2. 如果我无法使用<c:out>怎么办?比如说,参数是&#34; alice&amp; bob&#34;,<c:out>会把它变成&#34; alice%26bob&#34;,这不是我想要的。在这种情况下我该如何保护自己?

1 个答案:

答案 0 :(得分:0)

在将不受信任的输入发送到客户端之前,您将始终必须转义并清理它们。 手动编码是痛苦的,容易出错。但您可以使用SafeHtmlBuilder作为示例。 : - )