Escapador de cadenes URL
Eina eina d'escapament de cadenes d'URL
Introducció
En el món del desenvolupament web i les comunicacions d'Internet, les URL (Localitzadors Uniformes de Recursos) juguen un paper crucial en la identificació de recursos a la web. No obstant això, les URL tenen restriccions sobre els caràcters que poden contenir. Certs caràcters tenen significats especials, mentre que altres no són segurs per a l'ús en URL a causa de la possibilitat de malinterpretació o corrupció durant la transmissió.
L'escapament d'URL, també conegut com a percent-escapament, és un mecanisme per convertir caràcters especials en un format que es pot transmetre per Internet. Aquesta eina et permet introduir una cadena d'URL i escapar els caràcters especials, assegurant que la URL sigui vàlida i que pugui ser interpretada correctament pels navegadors web i els servidors.
Comprendre l'escapament d'URL
Què és l'escapament d'URL?
L'escapament d'URL implica substituir caràcters ASCII no segurs per un %
seguit de dos dígits hexadecimals que representen el codi ASCII del caràcter. Assegura que la informació es transmet per Internet sense alteració.
Per exemple, el caràcter d'espai ' '
es reemplaça per %20
.
Per què és necessari l'escapament d'URL?
Les URL només es poden enviar per Internet utilitzant el conjunt de caràcters ASCII. Atès que les URL sovint contenen caràcters fora d'aquest conjunt, han de ser convertides en un format ASCII vàlid. L'escapament d'URL garanteix que els caràcters especials no causin efectes no desitjats o errors en les sol·licituds web.
Caràcters que necessiten escapament
Segons l'especificació RFC 3986, els següents caràcters estan reservats en les URL i han de ser percent-escapats si s'han d'utilitzar literalment:
- Delimitadors generals:
:
,/
,?
,#
,[
,]
,@
- Sub-delimitadors:
!
,$
,&
,'
,(
,)
,*
,+
,,
,;
,=
A més, qualsevol caràcter no ASCII, incloent caràcters en Unicode, ha de ser escapats.
Com funciona l'escapament d'URL?
El procés d'escapament
-
Identificar caràcters especials: Analitzar la cadena d'URL i identificar caràcters que no són caràcters ASCII no reservats (lletres, dígits,
-
,.
,_
,~
). -
Convertir a codi ASCII: Per a cada caràcter especial, obtenir el seu punt de codi ASCII o Unicode.
-
Convertir a seqüència de bytes UTF-8 (si és necessari): Per a caràcters no ASCII, codificar el caràcter en un o més bytes utilitzant la codificació UTF-8.
-
Convertir a hexadecimal: Convertir cada byte al seu equivalent hexadecimal de dos dígits.
-
Prefixar amb el símbol percent: Precedir cada byte hexadecimal amb un signe
%
.
Exemple d'escapament
-
Caràcter:
' '
(Espai)- Codi ASCII:
32
- Hexadecimal:
20
- Escapat d'URL:
%20
- Codi ASCII:
-
Caràcter:
'é'
- Codificació UTF-8:
0xC3 0xA9
- Escapat d'URL:
%C3%A9
- Codificació UTF-8:
Casos límit a considerar
-
Caràcters Unicode: Els caràcters no ASCII han de ser escapats en UTF-8 i després percent-escapats.
-
Signe percent ja escapats: Els signes percent que són part d'escapaments percent no han de ser re-escapats.
-
Caràcters reservats en cadenes de consulta: Certs caràcters tenen significats especials en cadenes de consulta i haurien d'estar escapats per evitar alterar l'estructura.
Desescapament d'URL
Què és el desescapament d'URL?
El desescapament d'URL és el procés invers de l'escapament d'URL. Converteix els caràcters escapats per percent en la seva forma original, fent que la URL sigui llegible i interpretable per humans i sistemes.
Procés de desescapament
-
Identificar seqüències d'escapament percent: Localitzar tots els símbols
%
seguits de dos dígits hexadecimals en la cadena d'URL. -
Convertir hexadecimal a bytes: Traducir cada valor hexadecimal al seu byte corresponent.
-
Descodificar bytes UTF-8 (si és necessari): Per a seqüències de múltiples bytes, combinar els bytes i descodificar-los utilitzant la codificació UTF-8 per obtenir el caràcter original.
-
Substituir seqüències escapades: Substituir les seqüències escapades per percent pels caràcters descodificats.
Exemple de desescapament
-
Escapat:
hello%20world
%20
tradueix a un espai' '
- Desescapat:
hello world
-
Escapat:
J%C3%BCrgen
%C3%A4
tradueix a'ü'
en UTF-8- Desescapat:
Jürgen
Importància del desescapament d'URL
El desescapament d'URL és essencial quan es processa l'entrada de l'usuari a partir d'URL, llegint paràmetres de consulta o interpretant dades rebudes de sol·licituds web. Assegura que la informació extreta d'una URL estigui en la seva forma adequada i prevista.
Casos d'ús
Desenvolupament web
-
Paràmetres de consulta: Escapament de l'entrada de l'usuari en paràmetres de consulta per evitar errors o vulnerabilitats de seguretat.
-
Paràmetres de ruta: Inclusió segura de dades dinàmiques en rutes d'URL.
Transmissió de dades
-
APIs i serveis web: Assegurar que les dades enviades a les APIs estiguin correctament formatades.
-
Internacionalització: Suport a URL amb caràcters de diverses llengües.
Seguretat
- Prevenció d'atacs d'injecció: Escapament d'entrades per mitigar el risc de scripts entre llocs (XSS) i altres atacs d'injecció.
Alternatives
Si bé l'escapament d'URL és essencial, hi ha escenaris on altres mètodes d'escapament podrien ser més apropiats:
-
Escapament Base64: Utilitzat per escapar dades binàries dins d'URL o quan es requereix una major densitat d'informació.
-
Codificació UTF-8 sense escapament percent: Alguns sistemes utilitzen la codificació UTF-8 directament, però això pot causar problemes si no es gestiona correctament.
Considera les especificitats de la teva aplicació per triar el mètode d'escapament més adequat.
Història
L'escapament d'URL es va introduir amb les primeres especificacions dels estàndards d'URL i URI (Identificador de Recursos Uniforme) a la dècada de 1990. La necessitat d'una manera consistent d'escapar caràcters especials va sorgir dels diversos sistemes i conjunts de caràcters utilitzats a tot el món.
Fites clau inclouen:
-
RFC 1738 (1994): Va definir les URL i va introduir l'escapament percent.
-
RFC 3986 (2005): Va actualitzar la sintaxi de URI, refinant les regles per a l'escapament.
Amb el temps, l'escapament d'URL s'ha convertit en un aspecte integral de les tecnologies web, assegurant una comunicació fiable entre diferents sistemes i plataformes.
Exemples de codi
Aquí hi ha exemples de com realitzar l'escapament d'URL en diversos llenguatges de programació:
' Exemple de VBA d'Excel
Function URLEncode(ByVal Text As String) As String
Dim i As Integer
Dim CharCode As Integer
Dim Char As String
Dim EncodedText As String
For i = 1 To Len(Text)
Char = Mid(Text, i, 1)
CharCode = AscW(Char)
Select Case CharCode
Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126 ' 0-9, A-Z, a-z, -, ., _, ~
EncodedText = EncodedText & Char
Case Else
If CharCode < 0 Then
' Gestionar caràcters Unicode
EncodedText = EncodedText & "%" & Hex(65536 + CharCode)
Else
EncodedText = EncodedText & "%" & Right("0" & Hex(CharCode), 2)
End If
End Select
Next i
URLEncode = EncodedText
End Function
' Ús:
' =URLEncode("https://example.com/?name=Jürgen")
Nota: La sortida pot variar lleugerament segons com cada llenguatge gestiona els caràcters reservats i els espais (per exemple, escapant espais com %20
o +
).
Diagrama SVG del procés d'escapament d'URL
Consideracions de seguretat
L'escapament i el desescapament d'URL adequats són crítics per a la seguretat:
-
Prevenir atacs d'injecció: L'escapament de l'entrada de l'usuari ajuda a prevenir l'execució de codi maliciós, mitigant riscos com scripts entre llocs (XSS) i injeccions SQL.
-
Integritat de dades: Assegura que les dades es transmetin sense alteració ni corrupció.
-
Compliment dels estàndards: Adherir-se als estàndards d'escapament evita problemes d'interoperabilitat entre sistemes.
Referències
- RFC 3986 - Identificador de Recursos Uniforme (URI): https://tools.ietf.org/html/rfc3986
- Què és l'escapament d'URL i com funciona? https://www.urlencoder.io/learn/
- Percent-escapament: https://en.wikipedia.org/wiki/Percent-encoding
- Estàndard d'URL: https://url.spec.whatwg.org/
- URI.escape és obsolet: https://stackoverflow.com/questions/2824126/why-is-uri-escape-deprecated
Conclusió
L'escapament d'URL és un aspecte essencial del desenvolupament web i les comunicacions d'Internet. En convertir caràcters especials en un format segur, assegura que les URL siguin interpretades correctament pels navegadors i servidors, mantenint la integritat i la seguretat de la transmissió de dades. Aquesta eina proporciona una manera convenient d'escapar caràcters especials en les teves URL, millorant la compatibilitat i prevenint possibles errors o vulnerabilitats de seguretat.