我认为您正在使用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();