Wordpress SQL默认搜索,如何处理SQL注入

Wordpress SQL默认搜索,如何处理SQL注入,wordpress,sql-injection,Wordpress,Sql Injection,Wordpress默认SQL搜索,如何在默认搜索期间处理SQL注入 示例:Sitename.com/?q=test或1=1- i、 e q=测试%20或%201=1%20- 显示所有文章。为此,您可以使用三个钩子 “posts\u join”钩子将自定义表连接到post表 “posts_where”钩子扩展查询的where子句以查找 自定义表字段。 “posts\u groupby”钩子将GROUP BY子句添加到查询中 add_filter( 'posts_join', 'prefix_sea

Wordpress默认SQL搜索,如何在默认搜索期间处理SQL注入

示例:Sitename.com/?q=test或1=1-

i、 e

q=测试%20或%201=1%20-


显示所有文章。

为此,您可以使用三个钩子

“posts\u join”钩子将自定义表连接到post表 “posts_where”钩子扩展查询的where子句以查找 自定义表字段。 “posts\u groupby”钩子将GROUP BY子句添加到查询中

add_filter( 'posts_join', 'prefix_search_join' );
add_filter( 'posts_where', 'prefix_search_where' );
add_filter ( 'posts_groupby', 'prefix_search_groupby' );

function prefix_search_join( $join )
{
  //global $custom_table contain your custom table name
  global $custom_table, $wpdb;

  if( is_search() ) {
    //your joining sql
  }
  return $join;
}

function prefix_search_where( $where )
{
  if( is_search() ) {
   //Where clause 
   }
  return $where;
}

function prefix_search_groupby( $groupby )
{
  global $wpdb;

  if( !is_search() ) {
    return $groupby;
  }

  //we need to group on post ID
  $mygroupby = "{$wpdb->posts}.ID";

  if( preg_match( "/$mygroupby/", $groupby )) {
    //grouping we need is already there
    return $groupby;
  }
  if( !strlen(trim($groupby))) {
    //groupby was empty, use ours
    return $mygroupby;
  }
  //wasn't empty, append ours
  return $groupby . ", " . $mygroupby;
} 

有关更多详细信息,请查看此链接我希望它能帮助您

hi Nahid,感谢您的输入,但我正在寻找一个示例:用户在搜索框中从wp_帖子中输入选择*。然后进行搜索提交。使用查询参数,即搜索结果:选择*from wp_posts-0。我想自定义搜索结果,但不在占位符中添加查询。对于select子句,您可以使用添加过滤器“posts\U groupby”,“prefix\U search\U select”;钩