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

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

效果图

图片[1]-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

温馨提示:本文最后更新于2024-04-22 08:50:54已超过95天没有更新,某些文章具有时效性,若有错误或已失效,请在下方留言或联系LUOCA
文章版权声明 1 本网站名称: 辰安博客
2 本站永久网址:https://blog.luoca.net
3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长邮箱:[email protected]进行删除处理
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

BLOG.LUOCA.NET
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容