这应该是一个基本问题,但为什么最好使用这样的东西:
$pwd = filter_input(INPUT_POST, 'pwd');
而不仅仅是:
$pwd = $_POST['pwd'];
PS:我知道过滤器扩展可以与更多参数一起使用,以提供额外的清理级别。
答案 0 :(得分:14)
不是。 $_GET
,$_POST
,$_COOKIE
和$_REQUEST
为filtered with default filter。没有其他参数的filter_input(INPUT_POST, 'pwd')
也会使用默认过滤器。所以没有任何区别。
答案 1 :(得分:2)
应该对从客户端发送的任何数据(例如POST数据)进行清理和转义(甚至更好,检查完整性),以确保它不会扼杀您的网站。
SQL Injection和Cross-site scripting是未能清理用户发送数据的两大威胁。
答案 2 :(得分:2)
不是更好。
请参阅filter_input上的文档 http://www.php.net//manual/en/function.filter-input.php
并单击“过滤器类型”链接。 http://www.php.net/manual/en/filter.filters.php
我只使用过整数过滤器...
$user_id = filter_input(INPUT_POST, 'user_id', FILTER_SANITIZE_NUMBER_INT);
$user = abs($user_id); // To get rid of any +/-