在跟爬蟲的戰爭之中,很容易打到一些友好的爬蟲,像是 Google、Bing、...等搜尋引擎,還有像是 Ahrefs 這種 SEO 的輔助工具,我們要在自己的應用程式當中去過濾出所有的友好爬蟲,是一件苦差事,不過如果我們有使用 Cloudflare 的話,Cloudflare 有自己維護友好爬蟲的清單,再搭配他們自家的 Transform Rules 服務,我們就可以很輕鬆地過濾出友好的爬蟲。
Create transform rule
免費的方案可以設定兩組 Transform Rules,首先我們從 Rules
功能當中切換到 Transform Rules
頁籤,點開 Create transform rule
選擇 Modify Header
。
Modify Header
接著,在畫面上依序填入:
Rule name
:自訂的規則名稱,我給它叫「Friendly Bots
」。When incoming requests match...
:設定 Request 的過濾條件,在這邊我其實是不想過濾 Request,但是這個欄位是必填,所以我就設定一個寬鬆的過濾條件。Then...
:變更 Header 的方式,這邊選擇Set dynamic
,自訂一個Header name
,最後是重點,Value
填上「cf.client.bot
」。
最後點擊 Deploy
按鈕,就開始生效了。
經過剛剛這樣設定之後,有什麼效果? 如果發出 Request 的來源端是 Cloudflare 認定的友好爬蟲,Cloudflare 就會幫我們在 Request 中加一組 Header「X-Friendly-Bot=true
」往後端傳送,所以後端應用程式只要從 Request Headers 當中檢查有 X-Friendly-Bot 而且值是 true,就能知道目前的 Request 是不是從友好爬蟲發過來的,我們再決定看是要放行,還是做其他的處理。
不友好的爬蟲是不太能帶給我們什麼正向的價值,能擋則擋,這個事半功倍的功能就分享給有在用 Cloudflare 或是有考慮使用 Cloudflare 的朋友,希望能起到一點幫助。