Ghid pentru URL și UTM
Cum împarte URL și UTM de la XGM o adresă în părțile ei și în interogarea decodificată, cum construiește linkuri UTM și cum arată problemele de codificare.
Anatomia unui URL
https://user:pass@shop.example.com:8443/products/shoes?color=blue&size=42#reviews
└─┬─┘ └───┬───┘ └──────┬───────┘ └┬─┘└─────┬───────┘ └───────┬────────┘ └──┬──┘
scheme credentials host port path query fragment| Parte | Exemplu | Semnificație |
|---|---|---|
| Protocol (schemă) | https: | Cum se accesează resursa |
| Nume de utilizator și parolă | user:pass@ | Credențiale înglobate în URL; rare și nerecomandate |
| Nume de gazdă | shop.example.com | Serverul; decide unde ajunge cererea |
| Port | 8443 | Omis când este cel implicit al schemei (443 pentru HTTPS, 80 pentru HTTP) |
| Cale | /products/shoes | Resursa de pe server |
| Interogare | ?color=blue&size=42 | Parametri sub formă de perechi cheie=valoare |
| Fragment | #reviews | O poziție în pagină; nu este trimis niciodată serverului |
| Origine | https://shop.example.com:8443 | Schema, gazda și portul la un loc; granița de securitate a browserului |
Cum analizați un URL
- Deschideți URL și UTM și lipiți o adresă.
- Citiți tabelul cu părțile componente; o parolă aflată în URL este mascată la afișare.
- Verificați tabelul parametrilor de interogare pentru fiecare cheie și valoarea ei decodificată.
- Copiați ce vă trebuie sau continuați cu generatorul UTM ori cu Encoderul URL.
Analiza se face în browserul dumneavoastră. Linkurile lungi de urmărire conțin adesea adrese de e-mail, identificatori de sesiune sau tokenuri în parametri, așa că instrumentul nu le trimite nicăieri. Adresa lipită nu ajunge la serverul XGM și nu este scrisă în bara de adrese, iar un link pe care îl partajați poartă doar modul.
Construirea linkurilor de campanie UTM
Al doilea mod al instrumentului URL și UTM construiește linkuri de campanie. Instrumentele de analiză citesc cinci parametri: utm_source (de unde a venit vizitatorul, de exemplu newsletter), utm_medium (canalul, precum email sau cpc), utm_campaign (numele pe care îl dați campaniei) și, opțional, utm_term și utm_content. Primii trei sunt așteptați pe fiecare link etichetat. Când unul lipsește, traficul se adună în rapoarte ca vizită directă sau ca sursă neidentificată.
Generatorul păstrează parametrii de interogare existenți, codifică valorile și avertizează pentru spații și litere mari, pentru că instrumentele de analiză tratează Newsletter și newsletter ca surse diferite. Presetările completează valorile obișnuite pentru un newsletter, o postare pe LinkedIn și un link Google Ads. Un tipar de scriere ținut la fel de la un capăt la altul face mai ușoară compararea rapoartelor peste câteva luni.
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=september-launchȘiruri de interogare și codificare
Parametrii de interogare sunt separați prin &, iar cheile de valori prin =. Caracterele cu înțeles special, precum &, =, #, + și spațiul, trebuie codificate procentual în interiorul valorilor: un spațiu devine %20 (sau + în codificarea de formular), iar & devine %26. Parserul arată valorile decodificate, așa că name=Ana%20Pop apare ca Ana Pop. Șirul de interogare brut rămâne pe un rând separat, ca să puteți compara cele două perspective și să vedeți unde s-a stricat codificarea.
| Ce vedeți | Cauza |
|---|---|
Valoarea unui parametru este tăiată la & | Un & necodificat din valoare a pornit un parametru nou |
%2520 în URL | O valoare a fost codificată de două ori (% codificat ca %25) |
+ unde ar trebui un spațiu, sau invers | Codificarea de formular s-a amestecat cu codificarea procentuală |
| Aceeași cheie apare de mai multe ori | Este permis; multe framework-uri o citesc ca listă, altele iau prima sau ultima valoare |
Textul de după # lipsește pe server | Fragmentele nu sunt trimise niciodată în cererile HTTP |
Encoderul URL codifică și decodifică valori individuale, fie cu regulile pentru o componentă, fie cu cele pentru un URI complet, și este instrumentul potrivit când construiți adrese de mână. Compararea unei valori înainte și după codificare este cea mai rapidă cale de a scoate la iveală un șir codificat de două ori.
Verificarea unui link suspect
Linkurile de phishing mizează pe faptul că oamenii citesc partea greșită dintr-un URL. Numele gazdei este singura parte care decide la ce server ajungeți, iar în interiorul lui domeniul înregistrat este format din ultimele etichete dinaintea domeniului de nivel superior. Tot restul poate fi făcut să pară oficial. Și calea, și interogarea, și chiar textul vizibil al linkului sunt alese de atacator.
| Link | Gazda reală | Șmecheria |
|---|---|---|
https://example.com.login.example.net/ | example.com.login.example.net | Numele de încredere este un subdomeniu al altui domeniu |
https://example.com@example.net/ | example.net | Textul dinaintea lui @ este un nume de utilizator, nu gazda |
https://example.net/example.com/login | example.net | Numele de încredere apare doar în cale |
https://examp1e.com/ | examp1e.com | Caractere care seamănă între ele |
https://xn--exmple-cua.com/ | Punycode pentru un nume cu o literă non-ASCII | Domeniu internaționalizat care imită altul |
Nu deschideți un link ca să îl verificați
Pentru linkurile care redirecționează, parserul arată doar primul URL. Verificatorul de redirecționări urmărește lanțul de redirecționări al unui domeniu de pe serverul XGM, iar WHOIS arată când a fost înregistrat domeniul, ceea ce pentru domeniile de phishing este adesea foarte recent. Un domeniu înregistrat acum câteva zile nu este o dovadă în sine, dar este un semn suficient ca să priviți restul mesajului cu mai multă atenție.
Parametri de urmărire și confidențialitate
Multe linkuri poartă parametri care nu au nicio legătură cu conținutul paginii: etichete de campanie precum utm_source și utm_campaign, identificatori de clic adăugați de platformele de publicitate și identificatori specifici e-mailului, care leagă un clic de un anumit destinatar. Tabelul cu parametri îi face ușor de văzut. Ștergerea lor înainte de a partaja un link ține propria dumneavoastră activitate și identitatea destinatarului inițial în afara analizelor altora.
| Parametru | Scop |
|---|---|
utm_source, utm_medium, utm_campaign | Atribuirea campaniei în instrumentele de analiză |
utm_term, utm_content | Atribuirea cuvântului-cheie și a variantei de anunț |
| Identificatori de clic de la platformele de publicitate | Legarea unei vizite de un anumit clic pe un anunț |
| Parametri de sesiune sau de token | Autentificare ori stare; nu partajați niciodată linkuri care îi conțin |
Dacă publicați chiar dumneavoastră linkuri de campanie, construiți-le consecvent cu generatorul UTM. Valorile cu litere mici și o schemă de denumire fixă păstrează rapoartele curate, pentru că majoritatea instrumentelor tratează Email și email ca surse diferite. Aceeași regulă se aplică numelor de campanie: un tipar scurt, care conține data sau canalul, vă amintește peste luni de zile de unde venea fiecare link.
Analiza URL-urilor în cod
Folosiți parserul de URL al platformei, în locul expresiilor regulate sau al împărțirii șirurilor. Cazurile limită, precum credențialele, gazdele IPv6 între paranteze drepte, porturile implicite și caracterele codificate, strică parserele scrise de mână, iar analiza inconsecventă între componente a produs multe erori de securitate, de exemplu în listele de redirecționări permise. Când două parsere citesc diferit aceeași adresă, tocmai acolo caută atacatorul o breșă.
const url = new URL("https://shop.example.com/products?color=blue&size=42");
url.hostname; // "shop.example.com"
url.searchParams.get("size"); // "42"
url.searchParams.set("size", "43");
url.toString(); // "https://shop.example.com/products?color=blue&size=43"Când validați ținte de redirecționare sau origini permise, comparați exact valoarea origin ori hostname analizată cu o listă de adrese permise. Verificări precum startsWith("https://example.com") acceptă și https://example.com.example.net, ceea ce este o greșeală clasică de tip open redirect. Când construiți interogări, folosiți URLSearchParams, ca valorile să fie codificate corect de la sine.
Întrebări frecvente
Este URL-ul trimis către XGM?
Nu. Analiza folosește implementarea URL a browserului dumneavoastră și nimic nu este încărcat. Adresa nu este cerută, pagina din spatele ei nu este încărcată și nicio redirecționare nu este urmărită.
Ce se întâmplă dacă lipesc un URL fără https://?
Parserul presupune https://, așa că valori precum example.com/pricing funcționează. Scheme precum mailto: și tel: sunt păstrate ca atare.
De ce nu apare fragmentul în jurnalele serverului meu?
Browserele nu trimit niciodată serverului partea de după #. Ea este folosită doar de pagina în sine.
Ce este originea?
Combinația dintre schemă, gazdă și port. Browserele o folosesc pentru politica same-origin, pentru regulile de domeniu ale cookie-urilor și pentru CORS. Dacă se schimbă chiar și una dintre cele trei părți, originea devine alta.
De ce este portul afișat ca implicit?
URL-ul folosește portul standard al schemei sale, 443 pentru HTTPS sau 80 pentru HTTP, așa că niciun număr de port nu este scris în adresă.
Poate un URL să conțină o parolă?
Sintaxa permite user:password@host, dar browserele avertizează în privința ei, iar scrierea aceasta expune credențialele în jurnale și în istoric. Parserul maschează parola la afișare.
De ce apar unii parametri de două ori?
O cheie poate fi repetată într-un șir de interogare. Felul în care serverul interpretează repetările depinde de framework: unele adună valorile într-o listă, altele iau prima sau ultima valoare.
Ce este Punycode?
O codificare ASCII pentru numele de domeniu internaționalizate, care începe cu xn--. Browserele pot arăta oricare dintre forme; parserul arată numele gazdei așa cum îl returnează API-ul URL.
Care este diferența dintre un URL și un URI?
Un URI identifică o resursă; un URL este un URI care spune și cum poate fi găsită, de exemplu cu https:. În utilizarea zilnică a webului, cei doi termeni sunt folosiți unul în locul celuilalt.
Poate un nume de gazdă să fie o adresă IP?
Da. Adresele IPv4 apar ca atare, iar adresele IPv6 apar între paranteze drepte, de exemplu https://[2001:db8::1]/. Linkurile cu adrese IP brute sunt neobișnuite pentru site-urile normale și merită o a doua privire.
Cum construiesc un URL de campanie?
Folosiți generatorul UTM, care adaugă parametrii utm_source, utm_medium și utm_campaign cu codificarea corectă. Parametrii existenți ai paginii de destinație sunt păstrați, iar câmpurile lăsate goale nu sunt scrise în link.