何时使用:htmlspecialchars?

4

我需要使用以下方法将我的字符串转换为特殊字符:

 htmlspecialchars

我的问题是,在提交数据到数据库之前,我应该将其转换还是在显示之前转换?


1
在显示之前,你想以最原始的形式存储信息。 - Orangepill
4个回答

8

在将数据插入数据库之前,您应该对其进行清理,并在检索时进行转义。

htmlspecialchars用于转义,因此应在从数据库中获取数据后使用。


良好的区分清理和转义。 - Orangepill

2

它可以确保数据在插入HTML文档时是安全的。在将其插入HTML文档之前使用它,而不是数据库。


2
通常来说,在存储数据之前最好不要修改源数据。这会将您的数据与您使用它的特定上下文联系起来。如果您需要以不同的方式显示它,例如在PDF或文本格式中,那么您的文本中将包含html实体,并且需要将它们转换回来。
在我看来,性能考虑在这方面是次要的,人们仍然可以利用视图的缓存技术来进行优化。
因此,总的来说,我建议您在显示之前始终准备好字符串。

2

我假设数据在存入数据库之前已经进行了转义过滤,所以是安全的。从那里开始,在数据到达数据库的过程中,我尽量少地更改数据。

需要记住的是,也许你现在正在网站上使用这个副本,但是以后你可能会在不同的设备或印刷品上使用它。如果你在将数据发送到数据库之前使用htmlspecialchars,那么如果你想将其用于HTML之外的其他用途,你就必须清理它。将日期格式化为字符串再放入数据库是一个常见的例子,但当你想要更改格式时...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接