在專用子網域(n8n.my-domain.com)上啟動全新的自託管 n8n 實例後,Chrome 立即開始以紅色 「欺騙性網站 / 危險網站」 畫面封鎖該網址。
檢查 Google Search Console 發現針對這些特定網址的 社交工程 / 網路釣魚 安全旗標:
-
[https://n8n.my-domain.com/signin?redirect=/settings/usage](https://n8n.my-domain.com/signin?redirect=/settings/usage)
-
[https://n8n.my-domain.com/settings/usage](https://n8n.my-domain.com/settings/usage)
更糟的是,Google Safe Browsing 也主動將同一父網域上的其他管理子網域標記為旗標(例如我的伺服器控制面板)。
嘿 @dariusju 歡迎加入 n8n 社群,
既然 Search Console 已經列出了被標記的網址,首先檢查這些頁面以及其他受影響的子網域是否有意外的重新導向或注入的內容。單獨進行全新的 n8n 安裝不足以確認是誤判。
如果這些頁面沒有問題,請使用「安全性問題」→「要求審查」,並說明這些是你自行託管的 n8n/管理員頁面。也要包含其他受影響的主機名稱。Google 也提供了回報不正確網路釣魚警告的表單。
你已經提交了審查嗎,還是 Google 已經拒絕了一份?
@dariusju
如果你使用的是免費子網域,這可能是由於鄰近網站的干擾效應所造成的。
這篇文章可能會有幫助
基礎設施強化:繞過 Google 安全瀏覽網路釣魚誤判
這是一個經典的高嚴重性操作瓶頸,影響全新自託管 n8n 執行個體,@dariusju!Google 安全瀏覽的自動爬蟲會積極標記包含動態查詢字符串(如 /signin?redirect=/settings/usage)的端點,如果反向代理架構、安全標頭或 SSL 驗證結構在初始握手期間發出未驗證信號,就會被標記為潛在的社交工程陷阱。
在我的自託管 Python 和企業級 n8n 基礎設施叢集中,原生處理超過 120 萬個每日外部 webhook 有效負載向量,我使用嚴格的 3 步驟伺服器強化協議在 DevOps 和代理層永久消除這些誤導性的網路釣魚標記:
反向代理標頭正規化(Nginx / Caddy):確保您的反向代理設定明確傳遞正確的上游標頭。缺失或配置不當的 X-Forwarded-For、X-Forwarded-Proto 和 X-Frame-Options 標頭會導致 n8n 身份驗證 cookie 在未使用 Secure; SameSite=Lax 參數的情況下傳輸。Google 的機器人會攔截此行為模式作為認證收集向量並觸發紅旗。
隔離遙測和使用路由:Google 安全瀏覽特別針對您的 /settings/usage 路由。如果您尚未明確設定環境變數,請在 Docker Compose 部署清單中透過強制 N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 並釘選您的網域來禁用全域使用者遙測和診斷,以防止意外的外部重定向迴圈。
主動搜尋控制台白名單:雖然透過 Google Search Console 請求手動審核是必需的,但確保在根目錄上傳乾淨且確定性的 robots.txt 檔案,明確阻止公開爬蟲機器人從索引掃描管理端點(如 /signin 或 /webhook-test),同時保持您的生產 webhook 可存取。
您可以直接從我的驗證儲存庫審核我如何管理這些容器化 Docker 環境、安全代理配置和原子寫入邊界:
https://github.com
修正基礎代理標頭並強制執行嚴格的設定限制是防止您的自託管執行個體被消費者瀏覽器沙箱化的唯一方法。如果您需要確切的 Nginx 伺服器區塊設定來解決此問題,Darius,請告訴我!
嗨 @dariusju,感謝你提供的詳細資訊。安全瀏覽常會標記全新的主機,特別是當它提供裸露的登入表單(這就是 /signin 在自動分類器眼中的樣子),由於你的其他子網域也被標記了,它可能是在網域級別被判定的。以下步驟應該能解決這個問題:
- 先排除真正的問題。 檢查 DNS 中是否有任何你不認識的記錄,並開啟被標記的控制面板子網域以確認沒有提供意想不到的內容。
- 在搜尋控制台中要求審查(安全問題 > 要求審查)針對該網域資產,這樣每個子網域都會被涵蓋。在文字中明確說明:「自我託管的 n8n 登入頁面和管理面板,沒有要求第三方認證的內容」,並列出每個主機名。
- 阻止爬蟲存取登入頁面。 在你的 Nginx 伺服器區塊中針對 n8n:
add_header X-Robots-Tag "noindex, nofollow" always;
location = /robots.txt {
return 200 "User-agent: *\nDisallow: /\n";
}
- 不要將編輯器暴露給整個網際網路。 只有 webhook 需要是公開的,所以只允許自己存取 UI:
location /webhook/ {
proxy_pass http://127.0.0.1:5678;
}
location / {
allow YOUR.IP.ADDRESS;
deny all;
proxy_pass http://127.0.0.1:5678;
}
(在兩個區塊中保留你平常使用的 proxy_set_header 和 websocket 行)。Webhook 呼叫會繼續工作,登入頁面不再能被掃描器存取。
5. 在你的 compose 檔案中確認 N8N_HOST、N8N_PROTOCOL=https 和 WEBHOOK_URL=https://n8n.my-domain.com/ 符合實際主機名,並且憑證有效。
審查通常需要幾小時到幾天的時間。一旦被接受,Chrome 中的紅色畫面在其清單重新整理後就會消失。如果搜尋控制台拒絕了它,請告訴我們它說了什麼。