答案是:当然不是,否则您无法使用它们将其保存在DB中。
但是你问题的答案不那么容易。
Sanitizing 是准备数据以存储在数据库中的过程。例如,如果在post\\u名称中插入一些非法字符,则会将其删除,以便在保存之前对post\\u名称进行清理。如果在Customizer中使用颜色选择器,则应在保存之前对其进行清理(检查它是否确实是一种颜色,而不是一些随机字符串)。等等
但经过清理的数据仍然可能很危险。您可以在标题中使用“>”字符,因此包含该字符的标题将被清除。但当然,您不能在HTML代码中打印它。
那就是escaping 加入游戏。转义是使数据库中的数据对HTML代码安全的过程(基于上下文)。请记住,当同一标题打印在标记内时,应以不同的方式转义(然后应使用esc_html
), 当它用作html属性时(您应该使用esc_attr
) 等等
所以是的,您应该在将数据存储到DB之前始终清理数据,并始终根据给定的上下文使用正确的转义方式。