GitHub實施嚴格規則阻止中文使用者訪問疑似是反爬蟲和反抓取

#科技資訊 GitHub 實施更嚴格的風控規則阻止中文使用者訪問,疑似是為了反爬蟲和反抓取。根據網友反饋情況來看 GitHub 會先檢測 IP 地址質量,如果是髒 IP 則會觸發風控規則,接著檢測請求頭語言是否是 zh_CN,如果是則禁止訪問。該策略並不會攔截中國 IP,只是根據不同情況進行判斷。檢視全文:https://ourl.co/108910
早前 GitHub 因為失誤部署了遮蔽所有中國 IP 地址的規則,中國 IP 地址訪問時會出現禁止訪問提示,隨後 GitHub 更新規則並解釋是部署錯誤,更新規則後中國 IP 地址可以重新訪問。
如果之前是失誤那現在肯定就是故意的了,GitHub 部署的新規則會對使用者語言進行檢查,如果使用者使用的是中文 (僅限 zh_CN) 則可能會觸發限制而被限制訪問,不過從情況來看 GitHub 應該是為了反爬蟲的 (例如某 SDN 無差別拉取 GitHub 上的專案搬到自家平臺)。

從測試情況來看 GitHub 將多個條件整合用來觸發限制,例如首先檢查 GitHub 的常規規則 (包括黑名單 IP 和 UA),然後檢測 IP 地址質量,以上兩個條件全部通過後再檢查第三個條件,也就是瀏覽器請求頭的語言部分是否包含 zh_CN,如果檢測到使用者使用的中文則會返回錯誤。
也就是說 GitHub 並沒有針對特定區域的 IP 進行封禁,如果使用者 IP 質量沒問題的話則不會觸發語言檢測,因此如果使用者使用企業代理軟體訪問 GitHub 的話就可能因為 IP 地址質量差 (髒 IP) 而觸發語言檢測。
從這些情況來看 GitHub 大機率是為了反爬蟲和反抓取,目前大量 AI 爬蟲對 GitHub 瘋狂抓取用來訓練模型,這種抓取行為不僅會給 GitHub 伺服器造成負擔,也會浪費大量流量造成 GitHub 成本增加。
如果使用者並非爬蟲並且訪問受到影響,那也可以進行針對性的解決:
1. 簡單方法就是直接修改請求頭將語言修改為 en_US 等其他未被限制的語言
2. 更換質量更好的 IP 地址避免觸發風控,當然更換 IP 地址可能會增加潛在使用成本
不過針對語言的檢測很容易被繞過,接下來 GitHub 很有可能會觀察情況並對修改語言的行為進行檢測,畢竟反爬蟲是個長期工作,GitHub 也只能根據爬蟲的情況進行針對性的策略調整實現封禁。

相關文章