騰訊云EdgeOne導(dǎo)致的請求400錯誤解決辦法

2025年10月26日17:57:24 發(fā)表評論 171 ℃

最近上線一個香港項目,使用了騰訊云的EdgeOne,已經(jīng)在UAT測試沒有任何問題。

生產(chǎn)上線以后發(fā)現(xiàn)內(nèi)頁圖片無法訪問,全部400錯誤:

騰訊云EdgeOne導(dǎo)致的請求400錯誤解決辦法

騰訊云EdgeOne導(dǎo)致的請求400錯誤解決辦法

甚至部分api地址也是不定時的報錯400

騰訊云EdgeOne導(dǎo)致的請求400錯誤解決辦法

更甚至首頁有時候直接就報錯400

騰訊云EdgeOne導(dǎo)致的請求400錯誤解決辦法

國內(nèi)訪問很高的概率出現(xiàn)400錯誤,但是只要一翻墻,訪問就正常,但是在香港、澳大利亞、新加坡也有部分客戶訪問會出現(xiàn)400錯誤。

但是一樣配置的UAT一切正常,生產(chǎn)環(huán)境唯一不一樣的就是域名。

在花了兩天時間排查了CDN、安全防護所有一切可能以后,向騰訊云提交了工單。

得到了這么一個結(jié)果:

背景說明:Domain?Fronting?防護機制

在 2023年起,香港政府及其承包供應(yīng)商對?Domain?Fronting(域名前置)攻擊要求加強防護。

該攻擊方式的原理是:

攻擊者可以偽造?TLS?握手里的?SNI(Server?Name?Indication)?和?HTTP?請求頭中的Host?不一致,例如:

SNI?顯示為gov.hk?(可信域名)

Host?頭卻指向evil.com?(惡意服務(wù)器)

這會導(dǎo)致安全設(shè)備、CDN?或?WAF?錯誤地認(rèn)為是合法流量,從而實現(xiàn)繞過檢測、信息隱匿等攻擊行為。

因此,安全需求明確提出:

“當(dāng)客戶端攜帶的?SNI?與?HTTP?Host?Header?不一致時,系統(tǒng)需攔截請求并返回400。”

所以當(dāng)我們通過多域名去區(qū)分pc端、手機端、文件、API的時候,就出現(xiàn)了不一致的情況。

比如兩域名(www?和m)在相同IP?下、使用同一通配符或?SAN?證書,且服務(wù)端啟用了HTTP/2 (h2),瀏覽器為了性能優(yōu)化啟用了Connection?Coalescing(連接復(fù)用)機制。

其行為是:

瀏覽器僅建立 一次?TLS?連接(SNI?=?www.xxx.hk);

接著在這條TLS?連接上復(fù)用通道發(fā)送Host:?m.xxx.hk?請求。

出于?香港政府Domain?Fronting?策略要求,該行為被判斷為異常訪問(SNI/Host?不一致),EdgeOne?安全引擎觸發(fā)?防護攔截 → 返回?HTTP?400

所以關(guān)閉EdgeOne默認(rèn)的http2加速就可以了。

騰訊云EdgeOne導(dǎo)致的請求400錯誤解決辦法

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: