fix(安全): 关闭白名单时保留最小校验与默认白名单
实现 allow_insecure_http 并在关闭校验时执行最小格式验证 - 关闭 allowlist 时要求 URL 可解析且 scheme 合规 - 响应头过滤关闭时使用默认白名单策略 - 更新相关文档、示例与测试覆盖
This commit is contained in:
24
backend/internal/util/urlvalidator/validator_test.go
Normal file
24
backend/internal/util/urlvalidator/validator_test.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package urlvalidator
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestValidateURLFormat(t *testing.T) {
|
||||
if _, err := ValidateURLFormat("", false); err == nil {
|
||||
t.Fatalf("expected empty url to fail")
|
||||
}
|
||||
if _, err := ValidateURLFormat("://bad", false); err == nil {
|
||||
t.Fatalf("expected invalid url to fail")
|
||||
}
|
||||
if _, err := ValidateURLFormat("http://example.com", false); err == nil {
|
||||
t.Fatalf("expected http to fail when allow_insecure_http is false")
|
||||
}
|
||||
if _, err := ValidateURLFormat("https://example.com", false); err != nil {
|
||||
t.Fatalf("expected https to pass, got %v", err)
|
||||
}
|
||||
if _, err := ValidateURLFormat("http://example.com", true); err != nil {
|
||||
t.Fatalf("expected http to pass when allow_insecure_http is true, got %v", err)
|
||||
}
|
||||
if _, err := ValidateURLFormat("https://example.com:bad", true); err == nil {
|
||||
t.Fatalf("expected invalid port to fail")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user