Cloudflare

出自跨校選修
於 2026年4月26日 (日) 20:40 由 丁志仁討論 | 貢獻 所做的修訂 →‎抵擋爬蟲
跳至導覽 跳至搜尋

使用免費服務就夠了


抵擋爬蟲

wiki1231 的 LocalSettings.php 「$wgGroupPermissions['*']['read'] = false; // 禁止路人讀頁面」

再登入 cloudflare.com

  1. 到「帳戶首頁」的「網域」,點入域名
  2. 查 DNS 記錄,確定「類型:A」的域名對應 IP 的記錄是「通過 Proxy 處理」(橙色),而不是「僅 DNS」
  3. 選擇「網路安全 / 設定」:
    • 啟用 I'm Under Attack 模式
    • 封鎖 AI 機器人範圍,設為「在所有網頁上封鎖」
  4. 選擇「網路安全 / 安全性規則」
    • 自訂規則
      1. 規則名稱:protect-wiki
        ((http.request.uri.path contains "/alWiki") or (http.request.uri.path contains "/wellBeingNg")) and not cf.client.bot and not ip.src in {伺服器的 IPV4} 時採取 「受控的查問」
        這條經常使用
      2. 規則名稱:block-bad-bots
        (http.user_agent contains "curl" or http.user_agent contains "wget" or http.user_agent contains "python" or http.user_agent contains "scrapy") 時採取 「封鎖」
        這條極少使用
    • 限速規則
      1. 規則名稱:limit-wiki
        (http.request.uri.path contains "/alWiki") or (http.request.uri.path contains "/wellBeingNg") or (http.request.uri.path contains "/wiki1231") or (http.request.uri.path contains "/wikiGrade1") 時且使用相同的 IP / 每 10 秒請求 10 次 => 採取動作「封鎖 10 秒」
        這條偶而使用
  5. 「Caching / Cache rules」不要使用,會使得「分類樹」外掛的即時反應功能消失。
  6. 會使得 file_get_contents(…) 也被 cloudflare 當成爬蟲阻擋,必須改用 file_get_contents(http://localhost…) 取回資料。

對 urclass.net 下 mediawiki 的干擾與應變

  • http:// 下的正常 wiki 登入被擋 => 改用 https:// 登入即可
  • wiki1231 之下的各頁,因「路人禁讀」變成無法被其他 mediawiki 嵌入 => 改成在其他 mediawiki 做「真身」,而在 wiki1231 中嵌入真身
  • 在表 wiki_interwiki 的 iw_url 欄中以「http://urclass.net/目錄/index.php?title=$1」表達其他 mediawiki 會導致其他 mediawiki 的頁嵌入時被 cloudflare 當爬蟲擋:
    1. iw_url => 改以「http://well-being-ng.net/目錄/index.php?title=$1」表達其他 mediawiki ,而 well-being-ng.net 沒有交給 cloudflare 管,即可成功嵌入。
    2. 嵌入時,並不會檢查其他 mediawiki 的 $wgServer 變數,只要 well-being-ng.net 表達的是同一個 IP ,即使不是 $wgServer ,也會將指定頁面抓過來嵌入。

DNS

HTTPS