開發者 Sammy Straus 分享了他維護自訂新聞閱讀器 sprinklz.io 的經歷。一個月前,他將該工具發布至 Hacker News (HN),獲得了約一百個讚,用戶對能過濾 LLM 相關主題的功能表示歡迎。然而,隨後網站變得極度緩慢,且這種延遲在發文數日後甚至惡化,與實際活躍用戶數量不符。

透過添加端點層級的日誌記錄,Straus 發現多數請求並未嘗試抓取新聞文章,也未執行渲染頁面所需的 JavaScript(因為該網站是單頁應用)。進一步分析 NGINX 聚合日誌後,他發現近一半的流量來自一個特定的用戶代理。該服務自我描述為一個監聽網站變化並將其摘要為「AI 垃圾新聞通訊」的服務,其行為特徵是每分鐘多次查詢網站。Straus 隨後封鎖了該用戶。

此外,他還識別出其他標準的已知爬蟲,包括 Claude bot、OpenAI bot、Google 搜尋索引器以及幾個漏洞掃描器。Straus 更新了 robots.txt 以阻止大多數 AI 掃描器,但允許 Google-bot 和其他搜尋相關流量。他還要求 Claude 模擬掃描器訪問常見漏洞路徑(如 /wp-content/phpinfo.php),以確保沒有洩漏敏感資訊,並實施了合理的速率限制。

Straus 強調,最重要的教訓是必須提升網站的基礎設施效能,使其能處理更高的真實流量 QPS。受此事件啟發,他在過去幾週對底層基礎設施進行了多項改進,預計將為所有用戶帶來顯著的效能提升。sprinklz.io 是一個免費工具,允許用戶定義自訂規則以過濾任意主題(如 AI 或 LLM),並整合 HN 的分數等數據。

事件背景

根據作者 Sammy Straus 的個人經歷,其網站 sprinklz.io 作為單頁應用(SPA),當大量請求僅抓取基礎 HTML 而未執行 JavaScript 時,會導致伺服器負載異常升高。作者觀察到部分 AI 服務以極高頻率查詢網站以生成摘要,並透過 NGINX 日誌識別出這些非人類流量來源。

社群觀察

社群討論反映了開發者面對機器人流量的普遍困境與應對策略:

1. **流量雙面刃**:用戶 [naet] 提到,在 HN 分享自製線上遊戲後,雖然獲得了正面關注和 LinkedIn 聯繫,但也遭遇了 SQL 注入攻擊、輸入框濫用以及網站被複製托管的情況。 2. **雲端服務濫用**:用戶 [switz] 表示,由於大量的垃圾郵件、濫用和激進抓取,他不得不封鎖 AWS、Google Cloud、Azure、Alibaba Cloud 和 Oracle 等主要雲端服務供應商(ASN)的流量。他指出這不僅是簡單抓取,而是真正的代理濫用(如大量掃描漏洞或抓取數百萬頁低價值內容),並呼籲雲端供應商應管控其內部產生的濫用行為。 3. **病毒式傳播的副作用**:用戶 [firefoxd] 分享了自己因撰寫關於使用 zipbombs 處理機器人流量的文章而爆紅,結果伺服器被機器人流量壓垮,最終不得不改變策略。 4. **挑戰驗證機制**:用戶 [8by3] 提到他自行開發了類似 Anubis 的驗證系統(基於 Elixir),發現即使白名單了合法爬蟲,仍有超過 80% 的流量是未能通過挑戰的機器人。 5. **黑名單建議**:用戶 [pmlnr] 推薦使用 GitHub 上的 blocklist-abuseipdb 來阻擋所有相關流量。