WordPress SQL搜索,如何处理SQL注入?

时间:2017-02-06 作者:Senthil

WordPress SQL搜索:如何在默认搜索期间处理SQL注入?

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

i、 e。,

q=test%20or%201=1%20--
显示所有文章。

1 个回复
SO网友:birgire

默认的公共搜索查询变量为s 但不是q.

所以当你使用q, 在vanilla WP安装上,没有按预期进行POST过滤。

对于默认的搜索查询,您不必考虑可能的SQL注入,因为它是由核心负责的。

下面是运行test OR 1=1, 这个WHERE 生成的SQL搜索查询的一部分是:

AND 
(
    (
           (wp_posts.post_title   LIKE \'%test%\') 
        OR (wp_posts.post_excerpt LIKE \'%test%\') 
        OR (wp_posts.post_content LIKE \'%test%\')
    ) 
    AND 
    (
           (wp_posts.post_title   LIKE \'%1=1%\') 
        OR (wp_posts.post_excerpt LIKE \'%1=1%\') 
        OR (wp_posts.post_content LIKE \'%1=1%\')
    )
)
对于这种情况,我们没有看到查询搜索字符串破坏SQL查询。

另一方面,如果您正在添加自己的搜索查询,例如通过修改WP_Query 然后,您需要小心可能的SQL注入。关于细节的问题很少,但我假设这里不是这样。

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post