| ProgID | 版本/來源 | 特點 | 推薦度 |
Msxml2.ServerXMLHTTP.6.0 | MSXML 6.0 (Vista/Server 2008+ 內建) | 最新、安全、支援 HTTPS/TLS 1.2、效能最佳 | ⭐⭐⭐⭐⭐ |
Msxml2.ServerXMLHTTP.5.0 | MSXML 5.0 (Office 2003/Server 2003 SP1+) | 較舊、仍可用 | ⭐⭐⭐ |
Msxml2.ServerXMLHTTP.4.0 | MSXML 4.0 SP3 (獨立安裝) | 已停止支援、有已知漏洞 | ⭐ |
Msxml2.ServerXMLHTTP.3.0 | MSXML 3.0 (XP/Server 2003 內建) | 極舊、不支援現代 TLS | ❌ |
Msxml2.ServerXMLHTTP | 版本無關 ProgID (指向最高版本) | 相容性好、推薦生產使用 | ⭐⭐⭐⭐ |
Msxml2.XMLHTTP.6.0 | MSXML 6.0 客戶端版 (桌面應用) | 非伺服器端設計、有 UI 線程限制 | ⚠️ |
| ... .5.0 / .4.0 / .3.0 / 無版本 | 同理 | 同上 | ⚠️/❌ |
一鍵檢測腳本 (ASP 版,上傳即測)
將以下代碼存為 check_xmlhttp.asp,上傳至網站根目錄,瀏覽器訪問:
<%@ Language=VBScript CodePage=65001 %>
<%
Response.ContentType = "text/html; charset=utf-8"
Response.Write "伺服器 XMLHTTP 組件支援檢測報告
| ProgID | 結果 | 備註 |
"
Dim arrProgIDs, i, objXML, strProgID
arrProgIDs = Array( _
"Msxml2.ServerXMLHTTP.6.0", _
"Msxml2.ServerXMLHTTP.5.0", _
"Msxml2.ServerXMLHTTP.4.0", _
"Msxml2.ServerXMLHTTP.3.0", _
"Msxml2.ServerXMLHTTP", _
"Msxml2.XMLHTTP.6.0", _
"Msxml2.XMLHTTP.5.0", _
"Msxml2.XMLHTTP.4.0", _
"Msxml2.XMLHTTP.3.0", _
"Msxml2.XMLHTTP" _
)
For i = 0 To UBound(arrProgIDs)
strProgID = arrProgIDs(i)
On Error Resume Next
Set objXML = Server.CreateObject(strProgID)
If Err.Number = 0 Then
Response.Write "| " & strProgID & " | 支援 | 建議使用 |
"
Else
Response.Write "| " & strProgID & " | 不支援 | Err: " & Err.Description & " |
"
Err.Clear
End If
On Error GoTo 0
Set objXML = Nothing
Next
Response.Write "
"
Response.Write "結論: 若 Msxml2.ServerXMLHTTP.6.0 或 Msxml2.ServerXMLHTTP 支援,即可放心開發 AJAX/采集/代理功能。若均不支援,請聯繫空間商安裝 MSXML 6.0 或更換主機。
"
%>
檢測結果判讀與決策
| 結果 | 含義 | 行動 |
Msxml2.ServerXMLHTTP.6.0 = 支援 | 最佳環境,原生支援現代 HTTPS、TLS 1.2/1.3 | 直接開發,無障礙 |
僅 Msxml2.ServerXMLHTTP.3.0 支援 | 舊環境 (Server 2003 無補丁),無法呼叫 TLS 1.2+ API (如支付寶/微信支付/現代 OAuth) | 要求空間商安裝 MSXML 6.0 (KB973686) 或遷移 |
| 全部不支援 | 極度精簡/受限環境,或 Linux 主機跑 ASP (極罕見) | 立即退款/換家 |
進階:ASP.NET / PHP / Python 等環境的等效檢測
- ASP.NET:
HttpClient / HttpWebRequest / WebClient (原生支援,無需 COM 組件)。
- PHP:
cURL / file_get_contents (需 allow_url_fopen=On) / Guzzle / Http\Client。
- Python:
requests / httpx / urllib3。
- Node.js:
fetch (18+) / axios / got / http/https 模組。
安全使用守則
- ✅ 嚴格驗證 SSL 憑證:
objXML.setOption 2, 13056 (SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = False) 或預設行為。
- ✅ 設定超時:
objXML.setTimeouts 5000, 60000, 60000, 60000 (解析/連線/發送/接收,毫秒)。
- ✅ 限制目標域名/IP:防止 SSRF (Server-Side Request Forgery),僅允許白名單 API 端點。
- ✅ 錯誤處理:
On Error Resume Next + 檢查 objXML.Status / objXML.responseText,記錄日誌、不拋給用戶。
總結
購買 ASP 空間前,上傳 check_xmlhttp.asp 跑一次,30 秒看結果。
Msxml2.ServerXMLHTTP.6.0 支援 = 綠燈;不支援 = 紅燈,換家。
現代支付、物流、地圖、AI API 全走 HTTPS + TLS 1.2+,沒有 MSXML 6.0 等於沒辦法做生意。