熱評
加載中...
當前位置:首頁技術館建站教學二開美化【Wordpress】搜尋結果頁面人機驗證代碼 (算術驗證)

【Wordpress】搜尋結果頁面人機驗證代碼 (算術驗證)

文本是《WordPress(共53篇)》專題的第 43 篇。閱讀本文前,建議先閱讀前面的文章:

對於搜索介面開放的網站,不良分子都可以通過“搜尋”的方式進行攻擊。 這個不僅限於wordpress,其他CMS和自定義網站也可能受到類似的攻擊,輕則伺服器癱瘓,重則網站被K。

效果演示

【Wordpress】搜尋結果頁面人機驗證代碼 (算術驗證)

使用教學

進入WordPress後台 > 外觀 > 主題編輯器 > 點擊“functions.php” > 粘貼代碼到文件內容中 > 最後“更新文章”。

 $num1 = rand(1,50); $num2 = rand(1,50); 這裡面的部分可以設置簡單點,數位1到5就夠了

PHP
    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' );
AngelaL博客

       本文是原創文章,採用CC BY-NC-SA 4.0協議,完整轉載請註明來自AngelaL博客

給TA打賞
共{{data.count}}人
人已打賞
二開美化

【Chevereto】漂亮郵件範本

2025-3-8 0:09:58

二開美化

【子比】側邊欄推廣小工具

2025-3-10 1:13:35

0 條回复 A文章作者 M管理员
    
    暫無討論,說說你的看法吧
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索