前言

大家最近在連接 ThinkDB 的時候可能都有看見這個畫面吧

這是因為最近有留意到很多網站都有使用這個頁面
而且本站也經常受到自動機械人嘗試入侵
那我當然是要安排上了啊 😏

所以在一番研究之後就實裝了這個功能
順帶把途中碰到的壁都寫一下了

本文將集中寫一些概念上的事
並順附帶一些別人寫的教程
希望各位看客能找到自己需要的資訊


WAF VS Turnstile

Cloudflare 提供了兩個可用作驗證人機的工具
兩個都有免費版本可供使用
分別是為你整個域名或網站作驗證的 WAF (Web Application Firewall)
還有就是為你的個別動作進行驗證的 Turnstile

相比使用 Google 的 reCAPTCHA
用戶不需要點擊那些把人類大腦幹碎的迷題
同時這些服務暫時也都是免費的
所以在短時間內吸引了很多用戶使用
(包括了我(●’◡’●))

本站目前是兩個工具都有在用的
分別是用於全站的保護
以及表單提交(例如留言)的保護


Turnstile

往下拉一點
你就能在本文下方的留言區內看到這個機械人檢測方塊

這就是在使用 Cloudflare Turnstile

在 WordPress 面頁中 (本站是其中之一)
通常都是使用插件 (plugin) 來實現的
最多人使用的插件應該是下面這兩個

  1. Simple Cloudflare Turnstile – CAPTCHA Alternative
    教程:如何在 WordPress 中使用 Cloudflare Turnstile 防止垃圾留言?
  2. WPForms – Easy Form Builder for WordPress – Contact Forms, Payment Forms, Surveys, & More
    教程:How to Add Cloudflare Turnstile to WordPress Forms (FREE)

當然,你也可以自己寫 code sinppets 來達到相同的效果
教程:https://www.quantsnote.com/wordpress-add-cloudflare-turnstile-captcha#via-code-snippets


WAF

WAF 的本質就是一個由 Cloudflare 提供的防火牆 (firewall)
就是用來檢查並欄截網絡請求的
所以要用上這個防火牆
我們就得要先把所有網絡流量都交由 Cloudflare 管理
(最近 WAF 在新版 dashboard 中被更名為 Security rules 了)

Cloudflare 提供的方案是
把你的域名的 NS (name server) 設置為 Cloudflare 的 NS
好讓 Cloudflare 托管你的域名配置

這樣一來
你的用戶在使用你的域名接入你的服務時
那個網絡請求就要先到 Cloudflare 進行域名解析
然後 Cloudflare 就可以介入
並檢查該請求是否由機械人發出

畫作流程圖的話大概就是這樣
(這也是我猜的,有錯請指正 ╰(*°▽°*)╯)

要建立起這個流程
大致的步驟如下

  1. 向你的域名注册商(domain name registrar)申請把 name server 換為 Cloudflare 的 name server
    一般在域名注册商的網頁設置即可
    設置後記得把你原有的 DNS 配置在 Cloudflare 都設置一次
    教程:【2025】Cloudflare 教學:3 步驟免費加速網站,提升安全性
  2. 在 Cloudflare dashboard 設置 WAF 觸發 “Managed Challenge” 的條件
    如果想所有流量都觸發檢查的話
    可以把條件設置為 (http.request.uri wildcard r"*")
    如果允許 Google 等搜尋引擎不用檢查的話
    可以加上 and not cf.client.bot
    變為 (http.request.uri wildcard r"*" and not cf.client.bot)
    不過要注意的是,不只是搜尋引擎
    其他某些已知的友好機械人或合法爬蟲都可避開檢查
    教程:Cloudflare WAF 防护策略简易指南

在你把域名 NS 設置到使用 Cloudflare 的 NS 後
你的網頁可能會觸發不停的重新導向(infinite loop)

這樣的成因有很多
比較常見的可能是因為你的伺服器自動把 HTTP 重新導向到 HTTPS
這時只要把 Cloudflare 的 SSL/TLS Encryption Mode
設置為 Full 或 Full (strict) 即可
詳見 ERR_TOO_MANY_REDIRECTS (Cloudflare Docs)


後記

眾所周知
本站九成以上的流量都是來自惡意機械人的
在啟用 WAF 後
人類檢查的通過率足足有驚人的 0%
可見本站多有人氣 🙂

感謝 Cloudflare 為本站和各個網站
擋下大量的惡意攻擊
實屬功德無量
也希望這些功能可以免費得久一點吧
本站實在是沒有收入
能省一點是一點啊 🤧

所以各位有興趣點一下下面的廣告資助一下本站嗎
嘻嘻 (👉゚ヮ゚)👉


廣告欄位
本站致力於為大家提供乾淨舒服的獲取資訊途徑
並盡量把廣告對閱讀體驗的影響降至最低
若想支持本站營運
可點擊此處打開廣告
廣告的內容並非由本站控制
請小心驗證廣告內容
感謝各位看客的支持 ( •̀ ω •́ )y


在〈[碰壁指南] Cloudflare WAF (Security rules) / Turnstile 人機檢測,保你網站免受機械人打擾〉中有 1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Trending