你以為是真人,其實是機器人。你以為是機器人,其實是真人。這道Cloudflare驗證頁,可能是2025年最荒誕的產品設計謎題。
一個"正在加載"的無限循環
![]()
事情從一張截圖開始。
![]()
Medium用戶@amansoni76088發布了一篇標題為"Puzzle"的文章。點進去,沒有文字,沒有圖片,只有一個標準的Cloudflare人機驗證頁面——就是那種讓你等5秒、然后告訴你"正在驗證瀏覽器"的旋轉圈圈。
但詭異的是:這個頁面永遠不會結束。
代碼里藏著玄機。meta http-equiv="refresh" content="360"——每6分鐘強制刷新一次。窗口標題叫"Just a moment...",正文只有一行小字:"Enable JavaScript and cookies to continue"。
整個頁面是一個精心設計的閉環。它假裝在保護內容,實際上內容根本不存在。
更諷刺的是,這篇文章被歸類在Medium的"love"標簽下。RSS訂閱源顯示它來自"love-5"分類。一個關于愛的謎題,卻用最冷漠的技術屏障把讀者擋在外面。
驗證碼經濟學:誰在為"安全"買單
Cloudflare這套系統每天處理數十億次請求。它的商業模式很簡單:向網站主賣安全,向用戶賣時間。
但成本被轉嫁了。
普通用戶每次遇到驗證碼,平均浪費22秒。按全球日活估算,人類每年在驗證碼上消耗的時間超過500年。這不是比喻,是字面意義上的生命流逝。
更隱蔽的成本是認知負荷。那個旋轉的圈圈制造了一種焦慮——"是我的網壞了?還是我被判定為機器人?"這種不確定性被產品設計刻意保留,因為它能提高真人通過率(人類會耐心等待,腳本會超時退出)。
但@amansoni76088的"Puzzle"把這種不對稱推向了極端。它取消了驗證通過的出口,讓"等待"成為唯一的狀態。讀者被卡在系統設計的縫隙里,既無法前進,也無法獲得失敗反饋。
這像極了某些互聯網產品的核心體驗:注冊流程永遠差一步、客服電話永遠排隊、退款按鈕永遠找不到。
無內容的內容:當形式吞噬功能
Medium作為平臺,允許用戶發布空白文章。RSS源會正常抓取,搜索引擎會正常索引,訂閱者會收到推送。
但點進來的人發現,阻擋他們的不是付費墻,不是地域限制,而是一個"正在保護你"的安全層。
這創造了一種奇特的閱讀體驗:你為了看一篇文章,接受了被監控、被分析、被延遲。最后發現文章本身是一個關于這種體驗的元評論。
代碼不會說謊。cType: 'managed'表示這是Cloudflare托管的挑戰,cFPWv: 'g'標記了指紋版本。每個參數都在記錄你的設備、網絡、行為模式。而文章作者的名字amansoni76088,像是一個自動生成的ID,暗示著內容農場或測試賬號的可能性。
但"Puzzle"被發布在"love"分類下。這個標簽選擇是隨機的,還是故意的?如果是后者,它構成了一種尖銳的諷刺:我們以為技術在連接彼此,實際上它在制造越來越復雜的隔閡。
產品設計的黑暗模式
這個案例暴露了三個被默許的行業慣例。
第一,延遲即策略。故意放慢速度不是技術限制,是篩選機制。Cloudflare公開承認,挑戰頁面會"根據風險評分動態調整難度"。高延遲針對的是低成本攻擊者,但誤傷的真人只能自認倒霉。
第二,責任外包。Medium不驗證內容有效性,Cloudflare不驗證挑戰必要性,用戶承擔了所有摩擦成本。三方博弈中,最弱勢的一方沒有退出權。
第三,監控常態化。cH參數里的長字符串是加密的會話標識,關聯著你的每一次點擊、滾動、鼠標移動。驗證碼早已不是圖靈測試,是持續的行為生物特征采集。
@amansoni76088沒有寫一個字,卻用最純粹的形式完成了對這些機制的批判。當內容為空,容器本身就成了內容。
RSS的幽靈:被遺棄的協議如何存活
注意那個URL參數:source=rss------love-5。
RSS(簡易信息聚合,一種內容訂閱協議)誕生于1999年,被Google Reader的關閉宣判死刑,卻在2025年以一種詭異的方式延續生命。Medium仍然為每篇文章生成RSS feed,仍然允許通過source=rss參數追蹤流量來源。
但RSS的設計假設是:內容可以被完整抓取、離線閱讀、不受平臺控制。Cloudflare的驗證頁徹底打破了這種假設。RSS閱讀器收到的是標題和鏈接,點擊后卻進入了一個需要JavaScript、cookie、瀏覽器指紋的封閉花園。
這不是技術演進,是權力的重新分配。開放協議被封閉系統包裹,像琥珀里的昆蟲——形態完整,功能死亡。
那串神秘代碼:誰在幕后
![]()
頁面源碼里藏著更多線索。
cRay: '9f2f02597ee7a101'是Cloudflare的Ray ID,用于故障排查。cZone: 'medium.com'確認了保護范圍。cvId: '3'標記了挑戰版本。
最有趣的是cUPMDTk參數,它編碼了原始請求URL,包括__cf_chl_tk令牌。這個令牌有時間戳(1777305302,對應Unix時間2025年4月28日),有簽名,有有效期。它證明了這次訪問發生在特定時刻,來自特定入口,攜帶特定身份。
但所有這些數據,服務于一個不存在的內容。系統的精密與內容的虛無形成荒誕對比——就像用航天級材料制作一個空盒子。
用戶行為的反向工程
我們可以推測@amansoni76088的動機,但必須承認這是推測。
可能性一:測試賬號的誤操作。內容農場常用自動化工具批量發布,可能這個賬號的配置出錯,只抓到了頁面模板。
可能性二:對Medium平臺的抗議。用系統允許的極端形式,暴露內容審核的漏洞——空文章可以通過,卻被安全層阻擋。
可能性三:行為藝術。最簡潔的實現,最強烈的隱喻。沒有比這更純粹的"謎題"了:你解不開,因為它不需要解。
無論哪種,產品層面的啟示是清晰的:當設計只關注防御(防爬蟲、防濫用、防欺詐),而忽視真實用戶體驗,系統會自我異化。驗證碼本應是門,變成了墻。RSS本應是橋,變成了斷頭路。
行業影響的三個切面
這個微型事件折射出更大的結構性張力。
對內容平臺:Medium的推薦算法如何處理零內容文章?它獲得了點擊(用戶嘗試訪問),但沒有停留時長(頁面未加載)。這種數據會污染訓練集,還是被視為異常值丟棄?平臺沒有動力修復,因為"錯誤"本身也是 engagement。
對安全廠商:Cloudflare的挑戰頁面已經成為互聯網的基礎設施。它的設計選擇——顏色、文案、旋轉速度——影響著數十億人的心理狀態。但公眾討論幾乎為零,它像水電一樣被默認接受。
對普通用戶:我們習慣了在數字空間被延遲、被測試、被分類。這種習慣的代價是什么?當"證明你是人類"成為日常,人類性本身被重新定義——不是內在屬性,而是需要通過測試的表現。
技術細節的考古
讓我們回到那張截圖的代碼層。
CSS使用了system-ui字體棧,這是2017年后才普及的做法,確保跨平臺一致性。錯誤圖標是內聯的SVG,base64編碼,紅色(#B20F03)。這些細節說明Cloudflare在2020年后重構了前端,但核心邏輯——刷新、等待、再刷新——十年未變。
content-security-policy頭嚴格限制了資源加載來源。腳本只能來自challenges.cloudflare.com,樣式只允許內聯,圖片僅限自身域名。這是安全最佳實踐,但也意味著頁面完全受控,用戶無法通過瀏覽器擴展繞過。
最嚴格的限制是script-src-attr 'none',禁止行內事件處理器。連onclick這種基本交互都被封死。系統的封閉程度,堪比iOS的App Sandbox。
但所有這些安全投資,保護的是一個空白頁面。資源的錯配本身,就是當代互聯網的最佳注腳。
如果這是故意的呢?
假設@amansoni76088是有意為之,這個作品可以進入數字藝術史。
它繼承了"404藝術"的傳統——早期網民把頁面不存在錯誤轉化為創作空間。但"Puzzle"更進一步:它利用的是"200 OK",是正常工作的系統,是沒有任何故障的故障。
觀眾(如果存在)的體驗被嚴格編排:看到標題的好奇,點擊鏈接的期待,面對驗證頁的困惑,等待刷新的焦慮,最終意識到循環不會結束的荒誕。這是一個完整的情感曲線,由技術架構而非文字驅動。
Medium的"love"分類是神來之筆。如果這是隨機分配,是算法的無意識幽默;如果是手動選擇,是作者對平臺分類系統的嘲諷。無論哪種,它揭示了內容標簽與內容本身的斷裂——我們依賴標簽導航,但標簽早已不代表任何東西。
開放提問
當驗證系統比內容更復雜,當保護機制成為體驗本身,我們是否在建造一座沒有入口的圖書館?
Cloudflare的旋轉圈圈還會轉多久?Medium的RSS feed還會推送多少幽靈文章?更重要的是——下一次你遇到"Just a moment...",會選擇等待,還是直接關閉標簽頁?
這個選擇本身,可能就是@amansoni76088留下的真正謎面。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.