主页/WordPress笔记/博客文章/综合文章/如何在WordPress中添加Cloudflare Turnstile验证码

如何在WordPress中添加Cloudflare Turnstile验证码

Bug编译狮

Bug编译狮

要为您的WordPress网站添加Cloudflare的Turnstile验证码,您首先需要确保您的站点已经配置了Cloudflare CDN(内容分发网络)。然后,您可以按照以下步骤来实现这一目标:

步骤1:登录到您的WordPress管理面板

通常,这可以通过浏览器中的“WordPress”选项卡完成。如果您无法访问该页面,请尝试从菜单栏或通过搜索找到它。

步骤2:导航至设置

在WordPress管理面板中,找到并点击“设置”图标。在这里,您会看到许多不同的设置选项。

步骤3:进入安全性设置

在设置页面中,选择“安全”部分。这里,您可以查看和修改保护您的网站的各种措施。

步骤4:启用Cloudflare Turnstile验证码

在“安全性”部分下,查找与“防御”相关的设置。通常,这里的标题可能会显示为“防护”,或者可能有更具体的子标题如“防止恶意攻击”。在这里,您可以找到一个名为“Turnstile”的设置项。点击这个选项,开启Cloudflare的Turnstile验证码功能。

步骤5:输入验证码密钥

一旦开启了Turnstile功能,您会被提示输入您的Cloudflare帐户中的验证码密钥。请务必记住这个密钥,因为您将在稍后通过电子邮件或直接提供给用户以激活Turnstile。

示例代码

假设您已经在WordPress中启用了Cloudflare,并且您希望在每个表单提交时自动显示Turnstile验证码。您可以创建一个简单的PHP脚本来处理这种情况。下面是一个示例代码片段:

<?php
// 这里应该有一个变量来存储用户的输入
$user_input = $_POST['user_input'];

// 检查是否设置了验证码密钥
if (isset($_POST['turnstile_secret'])) {
    $turnstile_secret = $_POST['turnstile_secret'];
} else {
    // 如果没有设置,可以显示错误消息
    echo "请输入验证码密钥!";
    exit;
}

// 使用turnstil库验证用户输入
$turnstile = new CloudflareTurnstile($turnstile_secret);
$response = $turnstile->validate($user_input);

if ($response === true) {
    echo '验证码正确!';
} else {
    echo '验证码无效!';
}
?>

使用步骤及效果

  1. 获取验证码密钥

    • 登录到您的Cloudflare帐户。
    • 在“防护”部分,找到“防御”选项。
    • 查找与“防止恶意攻击”相关的设置,复制验证码密钥。
  2. 在WordPress中设置

    • 通过WordPress管理面板,导航至“设置 > 安全”。
    • 找到“Turnstile”选项并启用它。
    • 输入您刚刚复制的验证码密钥。
  3. 编写PHP脚本

    • 将上述示例代码保存为一个PHP文件,例如turnstile.php
    • 在您的表单中,添加一个隐藏字段用于传递验证码密钥:
      <input type="hidden" name="turnstile_secret" value="<?php echo esc_attr(get_option('cloudflare_turnstile_secret')); ?>">
  4. 测试

    • 当用户填写表单并提交时,他们将被重定向到Cloudflare的安全检查页面。
    • 用户需要手动输入他们的验证码才能继续提交表单。

效果说明

  • 当用户在表单中输入信息并点击提交按钮时,他们将被重定向到Cloudflare的安全检查页面。
  • 用户需要手动输入他们收到的验证码。
  • 成功验证后,用户的信息将被提交;如果验证码不匹配,用户将被阻止提交表单。

通过这种方式,您可以有效地增加网站的安全性,同时保持用户体验。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

首先,让我们了解一下什么是Cloudflare Turnstile和它的作用。Turnstile是一种用于验证网站访问者的身份的方法,它可以防止未经授权的访问。

在WordPress中添加Cloudflare Turnstile验证码的步骤如下:

  1. 登录到您的WordPress网站并前往“设置”选项卡。
  2. 在左侧菜单中选择“安全”。
  3. 点击“登录安全”。
  4. 选择“启用”按钮来激活Turnstile功能。
  5. 阅读文档了解更多信息。
  6. 在页面顶部找到一个带有“云”图标的地方,点击它以打开设置面板。
  7. 在“Turnstile”部分下,勾选“启用”。然后点击“保存更改”。

现在,您已成功设置了Cloudflare Turnstile。接下来,我们将创建一个新的测试站点来进行演示。

示例代码

假设我们有一个名为new-site.com的新WordPress站点,我们需要为该站点设置Cloudflare Turnstile验证码。以下是如何在新站点上配置Cloudflare Turnstile的示例代码:

// 获取当前站点的域名
$site_domain = get_option('siteurl');

// 设置Cloudflare API密钥
$cloudflare_api_key = 'your_cloudflare_api_key';

// 设置Cloudflare转发表地址(通常为www.your.cloudflare.com/cdn/turnstile/v1/session)
$turnstile_url = "https://www." . $site_domain;

// 创建一个Cloudflare令牌
$token = wp_create_nonce("wp-login");

// 创建一个Cloudflare请求
$url = "https://" . $turnstile_url . "/api/v1/tokens";

// 发送POST请求
$response = wp_remote_post($url, [
    'method' => 'POST',
    'timeout' => 10,
    'body' => array(
        'client_id' => $cloudflare_api_key,
        'redirect_uri' => esc_url_raw(add_query_arg(array('action' => 'login', 'next' => $_SERVER['REQUEST_URI'])), $_SERVER['REQUEST_URI']),
        'challenge' => $token,
    ),
]);

// 处理响应
if (is_wp_error($response)) {
    // 处理错误
} else {
    // 解析响应
}

// 输出结果
echo json_encode($response);

注意事项

  • API密钥:请确保拥有有效的Cloudflare API密钥。
  • 域名:将$site_domain替换为您自己的网站域名。
  • URL:使用$turnstile_url作为Cloudflare转发表地址。
  • Token:生成一个有效的令牌后将其存储在变量$token中。
  • 请求:使用wp_remote_post()函数发送POST请求到指定URL。

通过以上步骤,您可以成功地在您的WordPress站点上启用Cloudflare Turnstile验证码。这不仅增强了安全性,而且使用户能够轻松验证其身份以访问您的网站。