在 php 中清理整个 $_POST 数组的好方法是什么? [复制]

2024-03-07

我有一个包含很多变量的表单,然后发送电子邮件,而不是清理每个变量$_POST价值与filter_var($_POST['var'], FILTER_SANITIZE_STRING);我正在寻找一段更简单的代码。我想出了下面的内容,这似乎有效,因为我相信默认操作是FILTER_SANITIZE_STRING,但我只是想知道人们的意见是什么,如果这不是一个好的做法,也许你可以告诉我为什么?这$_POST然后将值单独嵌入到新变量中,因此我只会在开始时使用 array_map 来清理所有内容......

$_POST = array_map('filter_var', $_POST);

感谢您的回复,为您提供更多信息,基本上:

我正在捕获表单中的 20-30 个输入字段, 然后将数据显示给用户以检查他们的输入, 然后对变量进行清理, 然后向用户发送一封电子邮件 最后将详细信息输入数据库。

目前,我正在使用上面的 array_map 函数以及发送电子邮件之前对电子邮件地址的 FILTER_SANITIZE_EMAIL 进行清理,然后在插入数据库之前使用 mysql_real_escape_string() 转义输入。没有进入准备好的陈述等......你认为我应该做些什么额外的事情吗?再次感谢!


只需使用filter_input_array()来自过滤器扩展 http://php.net/manual/en/book.filter.php.

/* prevent XSS. */
$_GET   = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$_POST  = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

这将为您消毒$_GET and $_POST.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 php 中清理整个 $_POST 数组的好方法是什么? [复制] 的相关文章

随机推荐