这个问题最初是在评论中提出的here https://stackoverflow.com/questions/768442/php-filter-input#comment-580014.
Is 过滤器输入() http://www.php.net/manual/en/function.filter-input.php如果您使用参数化查询,那么仍然有必要htmlspecialchars() http://php.net/manual/en/function.htmlspecialchars.php在打印任何用户提供的数据之前?
这对我来说似乎没有必要,但我总是被告知“过滤输入,转义输出”。那么,除了数据库(或其他形式的存储)之外,是否还需要过滤输入的数据呢?
嗯,会有不同的意见。
我的看法是你应该始终使用它(或者,filter
一般情况下的扩展)。造成这种情况的原因至少有3个:
清理输入是您应该始终做的事情。由于该函数为您提供了这种功能,因此实际上没有理由寻找其他方式来清理输入。由于它是一个扩展,因此过滤器也会比大多数 PHP 解决方案更快,而且很可能更安全,这当然没有坏处。唯一的例外是您需要更专业的过滤器。即使如此,您也应该使用以下方法获取该值FILTER_UNSAFE_RAW
过滤器(参见#3)。
里面有很多好东西filter
扩大。它可以节省您编写清理和验证代码的时间。当然,它并没有涵盖每一种情况,但已经足够让您可以更多地关注特定的过滤/验证代码。
当您调试/审核代码时,使用该函数非常有用。当使用该函数时,您确切地知道输入是什么。例如,如果您使用FILTER_SANITIZE_NUMBER_INT
那么你可以确定输入将是一个数字——没有 SQL 注入,没有 HTML 或 Javascript 代码等。另一方面,如果你使用类似的东西FILTER_UNSAFE_RAW
那么你就知道应该小心对待它,而且它很容易造成安全问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)