WordPress它正在清除一个自定义的Query_var以避免SQL注入?

时间:2014-05-26 作者:Richzendy

我正在使用get_query_var 获取自定义的函数query_var. 这query_var 将在中稍后用于查询参数,以检索具有以下内容的帖子:

$the_query = new WP_Query( $args );
我的问题是,如果我使用get_query_var 例如提供了,或者我是否需要清除此变量以避免sql注入?

我读过this post, 但它并不完全清楚,而且也很古老。

1 个回复
SO网友:Richzendy

在一个完美的世界中,您不需要清理查询,因为WordPress ORM可以避免sql注入到数据库中,但极为建议您清理输入数据,尤其是如果输入数据是由访问者提供的。

例如,您可以使用如下内容:

$name = sanitize_text_field( $_POST[\'name\'] );
// WP_Query arguments
$args = array (
    \'name\' => $name,
);

// The Query
$query = new WP_Query( $args );
有许多过滤器函数可以进行清理:

sanitize\\u email()sanitize\\u file\\u name()sanitize\\u html\\u class()sanitize\\u key()sanitize\\u meta()sanitize\\u mime\\u type()sanitize\\u option()sanitize\\u sql\\u orderby()sanitize\\u text\\u field()sanitize\\u title()。有关详细信息,请使用破折号对标题进行清理读取的信息:

https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data

结束