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>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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()
|
||||
}
|
||||
Reference in New Issue
Block a user