From 0f3242bf1136dbea2a67a999037257d92cdd5b8d Mon Sep 17 00:00:00 2001 From: sagitchu Date: Fri, 1 May 2026 23:54:31 +0800 Subject: [PATCH] fix: reject raw probe target whitespace --- vite-frontend/src/pages/tunnel/form.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/vite-frontend/src/pages/tunnel/form.ts b/vite-frontend/src/pages/tunnel/form.ts index 334527d..18dc5ba 100644 --- a/vite-frontend/src/pages/tunnel/form.ts +++ b/vite-frontend/src/pages/tunnel/form.ts @@ -157,17 +157,19 @@ export const validateTunnelForm = ( errors.trafficRatio = "流量倍率须大于0,支持小数(如 0.5)"; } - const probeHost = (form.probeTargetHost || "").trim(); + const rawProbeHost = form.probeTargetHost || ""; + const probeHost = rawProbeHost.trim(); const probePortInput = form.probeTargetPort; const probePort = Number(probePortInput ?? 0); + const hasProbeHostInput = rawProbeHost.length > 0; const hasProbePort = probePortInput != null && probePortInput !== 0; - if (probeHost || hasProbePort) { + if (hasProbeHostInput || hasProbePort) { if (!probeHost) { errors.probeTargetHost = "请输入测试目标 Host"; } else if ( probeHost.includes("://") || - /[\s/?#]/.test(probeHost) || + /[\s/?#]/.test(rawProbeHost) || isSchemeLikeProbeHost(probeHost) ) { errors.probeTargetHost = "Host 不能包含协议、端口、空格或路径";