用Java转义html
如何确保我不会两次逃脱?
我听说,从表单接收值时转义值,并在输出时也转义是一种很好的做法。这样,您就有两次机会抓到东西。
回答:
我认为您正在使用JSP。
仅在
期间逃脱。那里的JSTL
<c:out>
标签是非常合适的。默认情况下,它会转义HTML实体。使用它可以显示
每个 用户控制的输入,例如请求URL,请求标头和请求参数。
例如
<input type="text" name="foo" value="<c:out value="${param.foo}" />">
输入期间无需转义。XSS在原始Java代码和SQL数据库中均无害。另一方面,您也宁愿将未修改的数据保存在DB中,以便仍可以看到用户
实际 输入的内容,以便在必要时可以对可邮寄用户进行社交操作。
如果您想知道在输入过程中要转义的内容,那就是SQL injection。在这种情况下PreparedStatement
,Statement
只要您想在数据库中保存
任何 用户控制的输入,只要使用而不是常规即可。
例如
create = connection.prepareStatement("INSERT INTO user (username, password) VALUES (?, MD5(?))");create.setString(1, username);
create.setString(2, password);
create.executeUpdate();
以上是 用Java转义html 的全部内容, 来源链接: utcz.com/qa/421050.html