Files
fn_registry/functions/cybersecurity/normalize_url.go
egutierrez bd9383fd82 feat: 16 funciones cybersecurity — análisis, crypto e IO de seguridad
12 funciones puras con implementación real:
HashSHA256, HashMD5, EntropyShannon, IsBase64, IsHex, ExtractURLs,
ParseIPCIDR, IPInRange, NormalizeURL, DetectSQLInjection,
LevenshteinDistance, JaccardSimilarity

4 funciones impuras con implementación real (stdlib):
LookupWhois, ResolveDNS, FetchHTTPHeaders, ScanPortTCP

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:23:41 +01:00

45 lines
886 B
Go

package cybersecurity
import (
"net/url"
"strings"
)
// trackingParams lista de parametros de tracking comunes a eliminar.
var trackingParams = map[string]bool{
"utm_source": true,
"utm_medium": true,
"utm_campaign": true,
"utm_term": true,
"utm_content": true,
"fbclid": true,
"gclid": true,
"ref": true,
"mc_cid": true,
"mc_eid": true,
}
// NormalizeURL normaliza una URL: convierte el host a minusculas, elimina fragmentos
// y remueve parametros de tracking comunes.
func NormalizeURL(rawURL string) string {
u, err := url.Parse(rawURL)
if err != nil {
return rawURL
}
// Lowercase host
u.Host = strings.ToLower(u.Host)
// Eliminar fragmento
u.Fragment = ""
// Eliminar parametros de tracking
q := u.Query()
for param := range trackingParams {
q.Del(param)
}
u.RawQuery = q.Encode()
return u.String()
}