WordPress搜索结果页面人机验证代码,算术验证

对于搜索接口开放的网站,不良分子都可以通过“搜索”的方式进行攻击。这个不仅限于wordpress,其他CMS和自定义网站也可能受到类似的攻击,轻则服务器瘫痪,重则网站被K。

效果图

WordPress搜索结果页面人机验证代码,算术验证
#WordPress搜索结果页面人机验证代码,算术验证

代码添加方法

进入WordPress后台 > 外观 > 主题编辑器 > 点击"functions.php" > 粘贴代码到文件内容中 > 最后“更新文章”。

代码

这里面的 $num1 = rand(1,50); $num2 = rand(1,50);部分可以设置简单点,数字1到5就够了

    function esc_search_captcha( $query, $error = true ) {
      if ( is_search() && !is_admin() ) {
        if ( ! isset( $_COOKIE['esc_search_captcha'] ) ) {
          $query->is_search = false;
          $query->query_vars['s'] = false;
          $query->query['s'] = false;
 
          if ( $error == true ){
            //$query->is_404 = true;
            if ( isset( $_POST['result'] ) ) {
              if ( $_POST['result'] == $_COOKIE['result'] ) {
                $_COOKIE['esc_search_captcha'] = 1;
                setcookie('esc_search_captcha',1,0,'/');
                echo '<script>location.reload();</script>';
              }
            }
 
            $num1 = rand(1,50);
            $num2 = rand(1,50);
            $result = $num1+$num2;
            $_COOKIE['result'] = $result;
            setcookie('result',urldecode($result),0,'/');
            ?>
 
            <HTML>
            <head>
            <meta charset="UTF-8">
            <title>人机验证</title>
            <style>
            body{color: #333;text-align: center;font-size: 16px;}
            .erphp-search-captcha{margin: 50px auto 15px;max-width: 250px;width: 100%;padding: 40px 20px;border: 1px solid #ddd;text-align: center;border-radius: 5px;}
            .erphp-search-captcha form{margin: 0}
            .erphp-search-captcha input{border: none;border-bottom: 1px solid #666;width: 50px;text-align: center;font-size: 16px;}
            .erphp-search-captcha input:focus{outline: none;}
            .erphp-search-captcha button{border: none;background: transparent;color: #ff5f33;cursor: pointer;}
            .erphp-search-captcha button:focus{outline: none;}
            a{color: #000;font-size: 12px;}
            </style>
            </head>
            <body>
            <div class="erphp-search-captcha">
            <form action="" method="post"><?php echo $num1;?> + <?php echo $num2;?> = <input type="text" name="result" required /> <button type="submit">验证</button></form>
            </div>
            <a href="<?php echo home_url();?>">返回首页</a>
            </body>
            </html>
            <?php
            exit;
          }
        }
      }
    }
    add_action( 'parse_query', 'esc_search_captcha' );

转自老白博客:https://www.xcbtmw.com/26056.html

版权声明

   站内部分内容来自互联网,该文仅限用于学习和研究目的。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。访问和下载本站内容,说明您已同意上述条款。在为用户提供最好的产品同时,保证优秀的服务质量。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容