我有一个输入字段,允许用户输入保存到数据库中的数据;在少数用法中,用户可以输入HTML。
将值保存到db中时,最好的做法是对值(可能包含html)进行转义/编码吗?或保存并在输出过程中对其进行编码?
编辑:只是想看看大多数人是否同意编码要存储在数据库中的文本是一个坏主意,由article解释
答案 0 :(得分:0)
在将用户输入放入数据库之前转义/编码用户输入总是好的,否则您可能会将系统暴露给SQL注入(即如果您使用的是任何SQL DB)。
答案 1 :(得分:0)
转义html特定字符是一种标准做法。您可以使用StringEscapeUtils
中的Apache Commons Lang简单示例:
String htmlStr = "<h1>Hi</h1>"
StringEscapeUtils.escapeHtml(htmlStr);
这会将字符串编码为<h1>Hi</h1>