是否需要像WP_USER_QUERY中的术语一样进行转义?

时间:2013-10-30 作者:John

搜索部分字符串时,使用WP_User_Query 我遇到了这个answer 作者@kaiser在Stackexchange上提供了一些很好的答案。然而,我对esc_attr 逃避类似术语(\'search\' => \'*\' . esc_attr( $your_search_string ) . \'*\').

我相信WP_User_Query 在不必要且徒劳无益的情况下,利用事先准备好的陈述。我说得对吗?

第二,如果真的要逃跑,不是吗like_escape() 更适合这个目的?

1 个回复
SO网友:Pat J

like_escape() 仅逃逸%_ 字符。整个函数如下所示:

function like_escape($text) {
   return str_replace(array("%", "_"), array("\\\\%", "\\\\_"), $text);
}
引用法典,esc_attr()

对(<;)进行编码>&"E;和“(小于、大于、与号、双引号和单引号)字符。不会对实体进行双重编码。

Always use when escaping HTML attributes (尤其是表单值),如alt、value、title等。

(我的重点。)

进一步阅读:Data Validation

Edited to add -- 我没有回答问题的第一部分:如果WP_User_Query 自己进行数据验证,那么我们真的需要使用esc_attr() 完全

的Codex页WP_User_Query 似乎没有说明是否进行了任何数据验证。(在页面中搜索validescape 也没有任何结果。)这与esc_attr() 第--“页”永远不会对实体进行双重编码向我表明使用esc_attr() 关于您传递的值。安全总比抱歉好,尤其是对于不受信任的用户提供的数据,对吗?

结束

相关推荐

使用$wpdb查询新创建的表

我在wordpress数据库中创建了一个名为forms, 此表包括ID 和names我想使用wordpress查询此表中的所有列表$wpdb下面是我的代码<?php global $wpdb; $result = $wpdb->get_results ( \"SELECT * FROM $wpdb->forms\" ); foreach ( $result as $print ) { echo $print-&