【发布时间】:2010-09-05 03:28:54
【问题描述】:
我想澄清一下用 php.ini 过滤用户输入的正确方法是什么。例如,我有一个用户输入信息的 Web 表单。提交后,表单中的数据将被输入数据库。
我的理解是你不想清理进入数据库的数据,除了转义它,比如 mysql_escape_string,你想在前端使用 htmlentities 或 htmlspecialchars 显示它时对其进行清理。但是,如果您愿意,您可以在用户提交表单时验证/过滤用户输入,以确保数据格式正确,例如字段是否用于您要验证其具有正确电子邮件格式的电子邮件地址。对吗?
我的下一个问题是,当您在 Web 表单中重新显示数据时,您会如何处理这些数据?假设用户在填写表格并将信息添加到数据库后可以编辑该表格中的信息。然后他们返回并查看他们最初输入的字段中的数据,您是否必须清理数据才能使其在表单字段中正确显示?比如有一个字段叫我的职称,输入我的职称的人是“经理”。您会看到经理周围的引号,当您将其按原样显示到表单字段中时,它会因为引号而中断:
<input type="text" name="title" value="My title is "Manager"">
所以你不必做类似 htmlentities 之类的事情来将引用转换为它的 html 实体吗?否则,该字段的值将类似于 My title is
希望这是有道理的。
【问题讨论】:
标签: php validation filter sanitization