我正在试图找出管理用户输入的有关他可能插入的非理想标签的数据的最佳方法:
哪个更好,这些中有任何缺点吗?
此致
答案 0 :(得分:3)
这取决于您的优先级:
htmlspecialchars()
来显示输出(如果不是更复杂的话)strip_tags()
- 这样您就可以减少需要存储的数据量,并减少显示数据时的处理时间屏幕答案 1 :(得分:2)
标签被插入到数据库中,但是当读取该字段并将其显示给用户时,我们将使用htmlspecialchars()
此。您通常希望人们能够键入少于标志和符号,并在页面上显示它们。 htmlspecialchars
在每个文本到HTML输出步骤(无论该文本是直接来自用户输入,还是来自数据库,还是来自其他地方)都是实现此目的的正确方法。弄乱输入是处理输出编码问题的一种非常合适的策略。
当然,您需要一个不同的转义 - 或参数化 - 将文本放在 SQL 字符串中。
答案 2 :(得分:0)
为确保用户输入而采取的措施完全取决于数据的使用环境。例如:
mysql_real_escape_string()
也很有效。上面的最后一点进入下一点:许多人认为应该始终保持原始输入。当你以后决定以不同的方式使用数据时,这很有意义,例如,HTML标签在新的上下文中并不是什么大问题。此外,如果您的网站在某种程度上受到了损害,您将获得确切输入的记录。
与用于在HTML页面上显示的用户输入中的HTML标记特别相关:如果用户有任何可以想象的原因输入HTML标记,那么只需将它们转义即可。如果没有,请在显示之前将其剥离。